Java中HashSet是Set的实现类,它是根据对象的哈希值确定元素的存储位置,它里面的元素是无序的(存入和读取顺序不一致)、不重复的。而【 【HashSet实现数据不重复原理】大概解释了他是如何实现的。
但是我们在常用的时候就会发现,HashSet并不能把我们认为相同的数据类型删除,这是因为程序对相同的数据都要进行hashCode和equals两种方法的判断,而这两种方法有时候却不能成功判断是否是一组相同的数据,这时候我们就得重写HashCode和equals这两种方法。
修改前
package Package5.test1Set;
import java.util.HashSet;
public class SetTest {
public static void main(String[] args) {
//重写HashSet方法,
HashSet set=new HashSet();//set集合内的元素不重复1.hashset的函数值一样,2.equals返回值为turn
set.add(new Student("java",20));
set.add(new Student("c",30));//这里我们输入了两组相同的数据
set.add(new Student("c",30));
System.out.println(set);
System.out.println(set.size());
}
}