使用stream分组求和再排序
时间: 2023-04-10 22:00:58 浏览: 185
java8 stream自定义分组求和并排序的实现
可以回答这个问题。使用stream分组求和再排序,可以通过Java 8中的Stream API实现。首先,使用groupingBy方法将数据按照指定的属性分组,然后使用summingInt方法对每个分组内的数据进行求和,最后使用sorted方法对结果进行排序。具体实现可以参考以下代码:
```
List<Data> dataList = ...; // 数据列表
Map<String, Integer> result = dataList.stream()
.collect(Collectors.groupingBy(Data::getGroup, Collectors.summingInt(Data::getValue)))
.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1, LinkedHashMap::new));
```
其中,Data是数据类,包含group和value两个属性。上述代码将数据按照group分组,对每个分组内的value进行求和,最后按照求和结果进行排序,并将结果保存在一个LinkedHashMap中。
阅读全文