【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 + '\'' +
                '}';
    }
}
相关推荐
来恩100324 分钟前
C# 线程与同步介绍
java·redis·c#
m0_7482365832 分钟前
使用rustDesk搭建私有远程桌面
java
web136885658711 小时前
突破与重塑:逃离Java舒适区,借Go语言复刻Redis的自我突破和成长
java
滚动的轮胎1 小时前
Maven 中常用的 scope 类型及其解析
java·maven
S-X-S1 小时前
Java面试题-Redis缓存
java·redis·缓存
带多刺的玫瑰1 小时前
Leecode刷题C语言之全排列②
java·数据结构·算法
Cherish~~1 小时前
Mysql8应用架构
java·架构
No8g攻城狮1 小时前
【异常解决】在idea中提示 hutool 提示 HttpResponse used withoud try-with-resources statement
java·开发语言·ide·intellij-idea
卓怡学长3 小时前
w200基于spring boot的个人博客系统的设计与实现
java·数据库·spring boot·后端·spring·intellij-idea
zhyhgx3 小时前
【Spring】Spring MVC入门(一)
java·spring·mvc