java list分组

Python015

java list分组,第1张

public static void main(String[] args) {

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工具类