HashSet使用前的排重工作

如何排重?

 

 

 

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

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

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

 

 

 

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

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

 

 

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

 

 

2.重写equals方法

自动重写:

 

 手动重写:

 

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

 

posted @ 2022-04-05 21:18  无关风月7707  阅读(32)  评论(0编辑  收藏  举报