【发布时间】:2021-09-24 21:23:16
【问题描述】:
我有一个 Map 是从这段代码中得到的
Map<String, Long> countsMap = sampleObjectList.stream()
.collect(Collectors.groupingBy(sampleObject::getStatus, Collectors.counting()));
获取地图后,我需要创建一个对象列表,其中包含每个状态的计数和总计数。
我使用下面的 for 循环执行此操作的正常方式。
List<ObjectCountDTO> dtoList = new ArrayList<>();
long allCount = 0L;
for(Map.Entry<String, Long> entry : countsMap.entrySet()) {
long count = entry.getValue();
allCount += count;
dtoList.add(new ObjectCountDTO(entry.getKey(), count));
}
dtoList.add(new ObjectCountDTO("ALL", allCount));
有没有办法在 java 8 中使用流来做到这一点?
【问题讨论】:
标签: java lambda java-8 java-stream reduce