一个java list对象集合 有重复的车辆 还有Fault Status 那个车辆有多个这个Fault Status 为2 的就取一个就行了 如果多个Fault Status 为1 为2 就取为1的
时间: 2024-05-05 19:16:07 浏览: 68
flex访问java对象
4星 · 用户满意度95%
可以使用Java 8的Stream API来实现:
假设有一个List<Car> carList,其中Car类包含属性faultStatus(1或2)和其他属性:
```
List<Car> distinctCars = carList.stream()
.collect(Collectors.toMap(Car::getId, Function.identity(),
(car1, car2) -> car1.getFaultStatus() == 1 ? car1 : car2))
.values().stream()
.collect(Collectors.toList());
```
这里使用toMap()方法将车辆按照ID作为key,将Car对象作为value。当key重复时,使用mergeFunction来处理冲突,即如果两个车辆的faultStatus都为2,则只保留一个。如果两个车辆的faultStatus一个为1,一个为2,则保留faultStatus为1的车辆。
最后使用values()方法获取所有Car对象,再用toList()方法转换为List<Car>对象。得到的distinctCars就是去重后的车辆集合。
阅读全文