- list集合利用stream根据对象得某一属性对集合进行分组得到Map<Long, List>这种结果
1、java8之前:
public Map<Long, List<PlantVo>> groupList(List<PlantVo> plantVos) {
Map<Long, List<PlantVo>> longListMap = new HashMap<>();
for (PlantVo plantVo : plantVos
) {
List<PlantVo> plantVos1 = longListMap.get(plantVo.getRowId());
if (plantVos1 == null) {
longListMap.put(plantVo.getRowId(), new LinkedList<>());
} else {
plantVos1.add(plantVo);
longListMap.put(plantVo.getRowId(), plantVos1);
}
}
return longListMap;
}
2、java8后
- 实现功能:根据PlantVo对象中的RowId进行集合中对象分组。
Map<Long, List<PlantVo>> collect = instanceDataDao.queryByEntity(configurationEntityId)
.stream().collect(Collectors.groupingBy(PlantVo::getRowId));