java8 Stream分组用法, 实体类, Map

1.实体类分组

@Data
public class Student {
    private String name;
    private int age;
    private int code;

    public Student(String name, int age, int code) {
        this.name = name;
        this.age = age;
        this.code = code;
    }

    public static void main(String[] args) {
        Student student = new Student("小名",20,115);
        Student student1 = new Student("小名",24,115);
        Student student2 = new Student("小名",20,115);

        List<Student> studentList = Arrays.asList(student, student1, student2);

        //按照年龄分组
        Map<Integer, List<Student>> ageMap = studentList.stream().collect(Collectors.groupingBy(Student::getAge));
        System.out.println("ageMap = " + ageMap);

        //按照年龄分组,并求出个数
        Map<Integer, Long> ageMap2 = studentList.stream().collect(Collectors.groupingBy(Student::getAge, Collectors.counting()));
        System.out.println("ageMap2 = " + ageMap2);

    }
}

2.Map分组

Map<String, List<Map<String, Object>>> xxxGroup = list.stream().collect(groupingBy(map -> map.get("xxx").toString()));
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
你可以使用Java 8的Stream API来对List<Map>进行分组操作。首先,你需要使用`Collectors.groupingBy()`方法来指定分组的条件,例如按照Map中的某个键进行分组。然后,你可以将Stream转换为Map,其中键是分组条件,值是分组后的结果。 以下是一个示例代码: ```java import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Map<String, Object>> list = getListOfMaps(); // 假设你有一个List<Map<String, Object>>对象 // 按照Map中的某个键进行分组 Map<Object, List<Map<String, Object>>> groupedMap = list.stream() .collect(Collectors.groupingBy(map -> map.get("key"))); // 输出分组后的结果 groupedMap.forEach((key, value) -> System.out.println(key + ": " + value)); } // 获取一个List<Map<String, Object>>对象的示例方法 private static List<Map<String, Object>> getListOfMaps() { // 示例数据 List<Map<String, Object>> list = List.of( Map.of("key", "group1", "value", 1), Map.of("key", "group1", "value", 2), Map.of("key", "group2", "value", 3), Map.of("key", "group2", "value", 4), Map.of("key", "group3", "value", 5) ); return list; } } ``` 在上面的示例中,假设你有一个List<Map<String, Object>>对象,其中的Map表示一条记录,你可以按照Map中的某个键(这里示例中的键为"key")进行分组。最后,将分组后的结果存储在一个Map中,其中键是分组条件,值是分组后的记录列表。 你可以根据自己的需求修改示例代码中的键和值的类型。希望这可以帮助到你!如果你有任何进一步的问题,请随时提问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值