【java stream 使用案例】根据某个字段进行分组

java 复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class demo2 {

    public static void main(String[] args) {
        List<OrderEntity> list = getListData();
        // 根据类型进行分组
        Map<String, List<OrderEntity>> collect = list.stream().collect(Collectors.groupingBy(OrderEntity::getType));
        // 取得类型为02的数据
        List<OrderEntity> list02 = collect.get("02");
        System.out.println(list02.toString());
    }

    public static List<OrderEntity> getListData() {
        List<OrderEntity> list = new ArrayList<>();
        OrderEntity o1 = new OrderEntity("1", "商品1", "189.99", "2025-01-01", "18:20:18", "01");
        list.add(o1);
        OrderEntity o2 = new OrderEntity("2", "商品2", "289.98", "2025-02-01", "14:28:40", "02");
        list.add(o2);
        OrderEntity o3 = new OrderEntity("3", "商品3", "589.99", "2024-08-01", "11:20:24", "02");
        list.add(o3);
        OrderEntity o4 = new OrderEntity("4", "商品4", "389.98", "2024-11-21", "18:28:55", "01");
        list.add(o4);
        OrderEntity o5 = new OrderEntity("5", "商品5", "859.99", "2024-09-11", "05:20:42", "01");
        list.add(o5);
        OrderEntity o6 = new OrderEntity("6", "商品6", "889.98", "2024-12-24", "16:18:52", "01");
        list.add(o6);
        OrderEntity o7 = new OrderEntity("7", "商品7", "198.99", "2025-02-09", "19:15:35", "02");
        list.add(o7);
        OrderEntity o8 = new OrderEntity("8", "商品8", "129.98", "2024-01-18", "12:25:56", "01");
        list.add(o8);
        return list;
    }

}
java 复制代码
import java.math.BigDecimal;

public class OrderEntity {
    /**
     * id
     */
    private String id;
    /**
     * 名称
     */
    private String name;
    /**
     * 价格
     */
    private BigDecimal price;
    /**
     * 购买日期
     */
    private String buyDate;
    /**
     * 购买时间
     */
    private String buyTime;
    /**
     * 商品类型
     */
    private String type;

    public OrderEntity() {}

    public OrderEntity(String id, String name, String price, String buyDate, String buyTime, String type) {
        this.id = id;
        this.name = name;
        this.price = new BigDecimal(price);
        this.buyDate = buyDate;
        this.buyTime = buyTime;
        this.type = type;
    }

    public String getId() {
        return this.id;
    }

    public void setId(final String id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public BigDecimal getPrice() {
        return this.price;
    }

    public void setPrice(final BigDecimal price) {
        this.price = price;
    }

    public String getBuyDate() {
        return this.buyDate;
    }

    public void setBuyDate(final String buyDate) {
        this.buyDate = buyDate;
    }

    public String getBuyTime() {
        return this.buyTime;
    }

    public void setBuyTime(final String buyTime) {
        this.buyTime = buyTime;
    }

    public String getType() {
        return this.type;
    }

    public void setType(final String type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return "OrderEntity{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", buyDate='" + buyDate + '\'' +
                ", buyTime='" + buyTime + '\'' +
                ", type='" + type + '\'' +
                '}';
    }
}
相关推荐
Joy T5 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_587383008 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·8 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
代码不停9 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金11 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
paopaokaka_luck12 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
Wang's Blog12 小时前
Java 项目实战: 交友项目 - Dubbo 的内部结构与一次调用的完整链路
java·dubbo
Wang's Blog12 小时前
Java 项目实战: 交友项目 - Dubbo 入门引导
java·dubbo·交友
蜗牛互联网13 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
SL_staff13 小时前
当规则引擎开始‘懂业务’:JVS-Rules金融风控四大原生能力拆解
java·python·全栈