java中对实体类的集合根据某一列属性去重
时间: 2023-12-14 18:38:18 浏览: 96
java list根据对象的某个属性的值去重
Java中可以通过实现equals()和hashCode()方法来对实体类的集合进行去重。具体步骤如下:
1. 在实体类中重写equals()方法和hashCode()方法,其中equals()方法比较对象的某一列属性是否相等,hashCode()方法返回该列属性的hashCode值。
例如,假设有一个Student类,要根据name属性去重,可以这样实现:
```
public class Student {
private int id;
private String name;
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (!(obj instanceof Student)) {
return false;
}
Student other = (Student) obj;
return Objects.equals(name, other.name);
}
public int hashCode() {
return Objects.hash(name);
}
// getter和setter方法省略
}
```
2. 使用Set集合来进行去重,因为Set集合不会存储重复的元素。可以使用HashSet或TreeSet。
例如,假设有一个List<Student>类型的集合list,可以这样去重:
```
Set<Student> set = new HashSet<>(list);
// 或者使用TreeSet
// Set<Student> set = new TreeSet<>(list);
```
这样,就可以根据name属性对Student对象进行去重了。
阅读全文