Java集合分组方法
List<Map<String, Object>> rsList = new ArrayList<>();
//先查出所需集合
List<实体> result =集合;
//分组,groupingBy后面接多个分组参数,例如:x-> x.getId() +"|" +x.getName()
Map<String, List<实体>> map = result.stream().collect(Collectors.groupingBy(x-> x.根据集合那个字段分组()));
**方法一**
//设置返回值,因为现在分完组的map,无法取值,Key是变量,现在需要对分组后的数据进行再次包装。
//id:变量的key。
for (String id : map.keySet()) {
Map<String, Object> rsMap = new HashMap<>();
List<实体> emDeviceConsumes = map.get(id);
rsMap.put("name", id);
rsMap.put("listValue", emDeviceConsumes);
rsList.add(rsMap);
}
**方法二**
// 提取分组后的列表
List<List<实体>> resultLists = new ArrayList<>(map.values());
for (List<实体> resultList : resultLists) {
//数据处理
}
该方法感觉并不是最好,如有更好的方法,请评论交流。