关于重复数据的判断问题
请问老师:
1、在HashSet中,是不是在添加数据的时候---set.add();的时候,就已经进行数据是否重复的判断了?
2、HashSet判断数据是否重复的方法是不是主要由HashCode()和equals()这两个方法来实现?
3、如果是由HashCode()和equals()这两个方法来实现,我知道Java的hashcode算法是固定的,那么为什么在Cat类中重写equals()就可以判断数据是否重复了呢?HashSet判断数据是否重复不是应该由HashSet自己的equals来实现的吗?
请老师解答一下,谢谢老师!!!
源自:Java集合
3-8 添加重复数据
0
收起
正在回答
1回答
关于你问题的回复:
前两个问题的回复是:是这样的
第三个问题:hashcode算法我们是用eclipse自动生成的,说固定的不准确。
HashSet判断数据是否重复,不是由它的equals()方法确定的。而是有添加到HashSet中的数据的hashCode()和equals()方法确定的。比如你向HashSet中添加Cat的4个对象,那么是要重写Cat类的hashCode()和equals()方法。在进行判断时,首先会判断hashCode是否相等,如果不相等,那么两个对象肯定不相等。如果相等会进一步调用equals()方法去判断他们的属性是否相等。
祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星