Java中list根据对象属性去重
时间: 2023-07-22 18:14:00 浏览: 111
在Java中,我们可以使用`HashSet`和`Lambda`表达式来根据对象属性去重。
假设有一个对象列表`objList`,其中每个对象都有一个属性`name`,可以按照以下方式进行去重:
```java
List<Obj> newList = objList.stream()
.distinct()
.collect(Collectors.toList());
```
这里的`distinct()`方法会根据对象的`equals()`方法进行去重,我们需要在对象类中重写`equals()`方法,并在其中指定按照`name`属性进行比较:
```java
public class Obj {
private String name;
// getter and setter
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Obj obj = (Obj) o;
return name.equals(obj.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
```
这样就可以根据`name`属性进行去重了。
阅读全文