List<Agency> 根据hierarchy去重
时间: 2023-11-15 14:04:30 浏览: 138
list的排序和去重
5星 · 资源好评率100%
如果你要根据 List<Agency> 中的 hierarchy 字段去重,可以使用 Java 8 中的 Stream API 和 Collectors 工具类来实现。
假设 Agency 类包含以下字段:
```
public class Agency {
private String name;
private String hierarchy;
// 省略 getter 和 setter
}
```
那么你可以这样写代码:
```
List<Agency> agencyList = new ArrayList<>();
// 假设 agencyList 已经被初始化并包含多个 Agency 对象
List<Agency> distinctAgencies = agencyList.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Agency::getHierarchy))),
ArrayList::new));
```
这段代码使用了 Collectors 工具类的 toCollection() 方法,将 List<Agency> 转换为 TreeSet<Agency>,并使用 Agency::getHierarchy 方法作为比较器进行去重。最后再将 TreeSet 转换为 ArrayList<Agency>,得到去重后的结果。
阅读全文