java list实体去重
时间: 2023-10-10 07:13:24 浏览: 81
可以使用Java 8的Stream API和lambda表达式来实现List实体去重,具体步骤如下:
1. 首先需要重写实体类的equals()方法和hashCode()方法,保证实体对象可以正确比较和哈希。
例如,我们有一个Person类,它有name和age两个属性,可以按照如下方式来重写equals()和hashCode()方法:
```java
public class Person {
private String name;
private int age;
// 省略构造方法和getter/setter方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
```
2. 使用Stream API的distinct()方法和lambda表达式来实现List实体去重。distinct()方法会返回一个新的Stream对象,其中的元素是根据equals()方法和hashCode()方法比较后得到的唯一元素。
例如,我们有一个List<Person>对象,可以按照如下方式来实现去重:
```java
List<Person> list = new ArrayList<>();
// 添加若干个Person对象到list中
List<Person> distinctList = list.stream().distinct().collect(Collectors.toList());
```
其中,distinct()方法用来去重,collect(Collectors.toList())方法用来将Stream对象转换为List对象。
这样就可以实现List实体去重了。
阅读全文