java8 将集合List<Map>或者List<Object>按照某个条件进行分组

分组 Collectors.groupingBy()

代码片段:


        Map<String, String> map1 = new HashMap<>();
        map1.put("year", "1998");
        map1.put("name", "linmm");
        map1.put("age", "22");
        map1.put("sex", "F");

        Map<String, String> map2 = new HashMap<>();
        map2.put("year", "1997");
        map2.put("name", "LiLie");
        map2.put("age", "23");
        map2.put("sex", "M");

        Map<String, String> map3 = new HashMap<>();
        map3.put("year", "1998");
        map3.put("name", "Anne");
        map3.put("age", "22");
        map3.put("sex", "F");

        List<Map<String, String>> list = new ArrayList<>();
        list.add(map1);
        list.add(map2);
        list.add(map3);

        // 将集合list按照year进行分组
        Map<String, List<Map<String, String>>> year_map = list.stream().collect(Collectors.groupingBy(doc -> doc.get("year")));

        year_map.forEach((k, v) -> {
            System.out.println(k + " -> " + v);
        });
        

输出结果:

1998 -> [{year=1998, sex=F, name=linmm, age=22}, {year=1998, sex=F, name=Anne, age=22}]
1997 -> [{year=1997, sex=M, name=LiLie, age=23}]

你可能感兴趣的:(java,List,java,java,map,集合,lambda,arraylist)