使用lamdba 将集合中的数据根据对象的多个属性来去重
时间: 2024-03-21 19:41:54 浏览: 56
可以使用Java 8中的Stream API和lambda表达式来实现根据对象的多个属性来去重集合中的数据。可以先定义一个自定义的去重方法,然后使用Stream的distinct()方法来实现去重。示例代码如下:
```java
public class Person {
private String name;
private int age;
private String address;
// 省略getter和setter方法
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Person)) {
return false;
}
Person p = (Person) obj;
return Objects.equals(name, p.name) && age == p.age && Objects.equals(address, p.address);
}
@Override
public int hashCode() {
return Objects.hash(name, age, address);
}
}
List<Person> personList = new ArrayList<>();
// 添加Person对象到personList中
List<Person> distinctList = personList.stream().distinct().collect(Collectors.toList());
```
这样就可以根据Person对象的name、age和address属性来去重集合中的数据了。
阅读全文