在这段代码中 集合中有三个字段分别是year,month,total,我需要通过流去除year最大的时候month最大的total值
时间: 2024-04-29 16:26:56 浏览: 90
输入年、月,求该年该月的最大天数
可以通过以下代码实现:
```java
List<Data> dataList = new ArrayList<>();
// 假设已经将数据填充到 dataList 中
Optional<Data> result = dataList.stream()
.collect(Collectors.groupingBy(
data -> data.getYear(),
Collectors.maxBy(
Comparator.comparing(Data::getMonth))))
.entrySet().stream()
.max(Map.Entry.comparingByKey())
.map(Map.Entry::getValue)
.flatMap(Function.identity())
.max(Comparator.comparing(Data::getTotal));
if (result.isPresent()) {
Data data = result.get();
System.out.println(data.getTotal());
}
```
其中,`Data` 是一个包含 `year`、`month`、`total` 字段的实体类,`dataList` 是数据列表。这段代码会将数据按照年份分组,然后在每组中找到月份最大的数据,最后找到年份最大的数据,再取出该数据中的 `total` 值。
阅读全文