使用Stream流 根据条件对list中数据进行分组

  • Post author:
  • Post category:其他


1.先创建数据

        List<Map<String, Object>> list = new ArrayList<>();
        Map<String, Object>  map1 = new HashMap<>();
        map1.put("name","a");
        map1.put("age","3");
        Map<String, Object>  map2 = new HashMap<>();
        map1.put("name","b");
        map2.put("age","4");
        Map<String, Object>  map3 = new HashMap<>();
        map1.put("name","c");
        map3.put("age","3");
        Map<String, Object>  map4 = new HashMap<>();
        map1.put("name","d");
        map4.put("age","5");
        list.add(map1);
        list.add(map2);
        list.add(map3);
        list.add(map4);

2.使用stream流处理数据

要求:对list中age属性相同的map进行分组处理

Map<Object, List<Map<String, Object>>> ageMap = list.stream().collect(Collectors.groupingBy(item -> {
            return item.get("age");
        }));

3.对处理的数据进行后续操作

        for (Object o : ageMap.keySet()) {
            List<Map<String, Object>> maps = ageMap.get(o);
        }



版权声明:本文为weixin_44098457原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。