HashSet使用前的排重工作


如何排重?

这里为什么数据“重复”了呢

这肯定不是数据重复啊。因为p4是新建对象,地址跟p1不同,二者是不同的!

如下图:很明显添加数据是不可重复的

如果想让名字和年龄相同的对象是同一个对象,怎么办呢?

1.在Person类里边重写hashCode方法

 如下图,重写hashCode方法以后同名同年龄数据还是添加成功了,排重失败。因为equals方法返回false仍然判断两个数据是不相同的。

2.重写equals方法

自动重写:

 手动重写:

 重写两个方法以后,如下图所示,同名同龄数据添加失败,成功完成了排重工作