一个list集合装有多个对象,对象的id可能重复,保留不同id的对象,相同的id对象进行去重,使用stream
时间: 2024-09-23 07:04:05 浏览: 42
在Java中,如果你有一个List集合,其中包含一些对象,并且这些对象的某个属性(比如ID)可能存在重复,你可以使用Java Stream API来对它们进行去重。假设我们有一个名为`MyObject`的类,它有一个`id`字段,你可以这样做:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class MyObject {
private int id;
// getters and setters...
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
MyObject other = (MyObject) obj;
return id == other.id;
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}
List<MyObject> list = ... // 初始化你的列表
// 使用Stream API去重
List<MyObject> uniqueList = list.stream()
.distinct() // 这里会根据equals()和hashCode()方法进行去重
.collect(Collectors.toList());
阅读全文