List<Map<String, Object>>list=new ArrayList<Map<String,Object>>()
Map<String, Object>map=new HashMap<String, Object>()
map.put("id", 1)
map.put("name", "颜色")
map.put("default", "红")
list.add(map)
Map<String, Object>map3=new HashMap<String, Object>()
map3.put("id", 2)
map3.put("name", "颜色")
map3.put("default", "绿")
list.add(map3)
Map<String, Object>map4=new HashMap<String, Object>()
map4.put("id", 3)
map4.put("name", "颜色")
map4.put("default", "蓝")
list.add(map4)
Map<String, Object>map5=new HashMap<String, Object>()
map5.put("id", 4)
map5.put("name", "尺寸")
map5.put("default", "15")
list.add(map5)
Map<String, Object>map6=new HashMap<String, Object>()
map6.put("id", 5)
map6.put("name", "尺寸")
map6.put("default", "16")
list.add(map6)
String ys="颜色:"
String cc="尺寸:"
for (Map<String, Object>map2 : list) {
if ("颜色".equals(map2.get("name"))) {
ys+=map2.get("default")+"-"+map2.get("id")+" "
}
if ("尺寸".equals(map2.get("name"))) {
cc+=map2.get("default")+"-"+map2.get("id")+" "
}
}
System.out.println(ys)
System.out.println(cc)
}
对List进行分组,也可以理解为将List转换为Map集合。
group by生成一个拥有分组功能的Collector,有三个重载方法。
2.1 可以对结果进行映射
2.2 可以对结果进行求和
2.3 对结果的统计
如果kv是唯一对应的,可以使用Collectors.toMap来实现。
推荐阅读:JDK8中List转换为Map
JDK1.8新特性——Collector接口和Collectors工具类