有个List<A>,A里有List<B>,B里有List<C>,用java代码去重
时间: 2024-03-22 14:37:13 浏览: 38
Java List中数据的去重
5星 · 资源好评率100%
可以使用Java8的Stream API和flatMap()方法来对嵌套的三层List集合进行去重,具体实现如下:
```java
List<A> listA = new ArrayList<>();
// ... 初始化listA
List<C> uniqueListC = listA.stream()
.flatMap(a -> a.getListB().stream())
.flatMap(b -> b.getListC().stream())
.distinct()
.collect(Collectors.toList());
```
其中,getListB()表示从A对象中获取嵌套的List<B>集合,getListC()表示从B对象中获取嵌套的List<C>集合,distinct()表示去除重复元素,collect(Collectors.toList())表示将去重后的元素重新组合成一个List返回。
需要注意的是,如果A、B、C类没有重写equals()和hashCode()方法,去重操作可能无法正常执行。此时,需要在A、B、C类中重写equals()和hashCode()方法,以确保去重操作的正确性。
阅读全文