package cn.itcast.day07;
import java.util.HashSet;
这是没有重写person类中的hashcode方法,和equals方法
public class SetDemo1 {
public static void main(String[] args) {
//hashset中是不允许出现两个重复的元素,set在添加的时候,会先比较两个对象的hashcode是不是相等
//如果两个对象的hashcode相等的情况下,在通过比较两个的equals的方法
//其中的hashcode的比较在object是通过在系统中随机生成一个十进制的数
HashSet<Person> set = new HashSet<>();
Person p1 = new Person("小美女",22);
Person p2 = new Person("小美女", 22);
Person p3 = new Person("我的小南",23);
set.add(p1);
set.add(p2);
set.add(p3);
System.out.println(set); //三个元素都被添加了
//==是计较两个对象的地址
System.out.println(p1 ==p2);//false
//表示查询两个对象的字符串是不是相等
System.out.println(p1.equals(p2));//false
System.out.println(p1.hashCode());//两个比较的是不同的
System.out.println(p2.hashCode());
}
}
这是重写了hashcode和equals的方法后的结果 添加了两个元素,并且hashcode的值是相等的