Java8 List<javabean> 按照字段key1分组,每组对应的list按照名称倒序排序
时间: 2024-09-22 14:01:32 浏览: 37
Java中使用EL表达式文档
在Java 8中,你可以使用Stream API来处理这样的操作。首先,你需要将`List<javabean>`转换为一个流(Stream),然后使用`Collectors.groupingBy()`函数根据`key1`字段分组,并结合`sorted()`方法对每个子列表按名称字段进行倒序排序。
假设`javabean`有一个名为`name`的属性,可以这样做:
```java
import java.util.*;
import java.util.stream.Collectors;
List<Javabean> list = ... // 假设这是你的javabean列表
Map<String, List<Javabean>> groupedAndSorted = list.stream()
.collect(Collectors.groupingBy(Javabean::getKey1,
Collectors.toList() // 使用toList()收集子列表
.sorted(Comparator.comparing(Javabean::getName).reversed()) // 对每个子列表按名称倒序排序
));
// 现在groupedAndSorted是一个Map,键是key1值,值是按名称倒序排列的Javabean列表
```
这里的关键点在于`Collectors.groupingBy()`用于根据`getKey1()`方法创建映射,而`sorted()`方法用于对每个子列表进行排序。
阅读全文