HashSet中的元素具有不重复和无序的特点。
在此只讨论比较在不重复特性中的作用。
首先在HashSet中定义有两个方法:int hashCode()和bloolean equals()
去重复的原理:
当数据进入HashSet的对象中的时候,调用hashCode()方法,相同则调用equals(),如果哈希值不同返回值
结论:1,为了防止出现值不同但哈希值相同,多数情况下需要重写hashCode和equals方法
假设对象类型是学生,具有年龄和姓名两个属性;
代码如下
class student{
private String name;
private int age;
student(String name,int age;){
this.name=name;
this.age=age;
}
}
此时如果使用HashSet<stdent> hs=new HashSet<student>();
hs.add(new student(“zhang”,12));
hs.add(new student(“zhang”,12));
这样的方法创建student对象,HashSet