1.原理
在实体对象类中重写hasCode方法和equals方法。先比较hasCode是否相等,若相等则不添加;若不等再比较equals方法,若也相等则添加元素,否则不添加。这种方法比循环遍历list元素更加高效。
hashSet的底层实际上就是一个hashMap的key值,因此不允许重复。
2.代码示例
2.1实体对象类
若实体对象元素中含有null,则使用equals比较时会报错,因此需要判别一下。
import java.util.Objects;
public class Student {
private String id;
private String name;
private String age;
public Student(){};
public Student(String id,String name,String age){
this.id=id;
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age