HashSet使用前的排重工作
如何排重?
这里为什么数据“重复”了呢
这肯定不是数据重复啊。因为p4是新建对象,地址跟p1不同,二者是不同的!
如下图:很明显添加数据是不可重复的
如果想让名字和年龄相同的对象是同一个对象,怎么办呢?
1.在Person类里边重写hashCode方法
如下图,重写hashCode方法以后同名同年龄数据还是添加成功了,排重失败。因为equals方法返回false仍然判断两个数据是不相同的。
2.重写equals方法
自动重写:
手动重写:
重写两个方法以后,如下图所示,同名同龄数据添加失败,成功完成了排重工作