java 关于集合Set接口的实现类中 元素相等的问题Set中的hashCode是否是用来确定元素在集中位置的东西?如果是的话,为什么不能单凭equal()方法检验两个元素是否相同呢?Set集中不是不能含有相同

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 12:34:48

java 关于集合Set接口的实现类中 元素相等的问题Set中的hashCode是否是用来确定元素在集中位置的东西?如果是的话,为什么不能单凭equal()方法检验两个元素是否相同呢?Set集中不是不能含有相同
java 关于集合Set接口的实现类中 元素相等的问题
Set中的hashCode是否是用来确定元素在集中位置的东西?如果是的话,为什么不能单凭equal()方法检验两个元素是否相同呢?Set集中不是不能含有相同元素吗?

java 关于集合Set接口的实现类中 元素相等的问题Set中的hashCode是否是用来确定元素在集中位置的东西?如果是的话,为什么不能单凭equal()方法检验两个元素是否相同呢?Set集中不是不能含有相同
HashSet确实是靠hashcode来运算出这个元素应该存放在什么地方.
但是不同的对象,hashcode也可能会相同.
这时就发生了冲突,需要再次比较发生冲突的两个或多个元素是否相同(通过equals方法).
如果相同添加失败,如果不同添加成功.
为什么不直接用equals比较是否相同?
因为不知道该跟哪个元素比较啊,难不成遍历整个Set来比较?
如果有一万个元素呢,那么将会很费时间.
而先算出hashcode在比较有个好处.
只要hashcode不同,则可以确定元素不同.只有hashcode相同的情况下,元素才有可能相同.
hashcode的性质:
如果两个元素相同,那么其hashcode必定相同.
如果两个元素不同,那么不要求其hashcode一定不同.(但是如果不同的元素尽量能返回不同的hashcode,那么将有助于提高HashSet的性能)

java 关于集合Set接口的实现类中 元素相等的问题Set中的hashCode是否是用来确定元素在集中位置的东西?如果是的话,为什么不能单凭equal()方法检验两个元素是否相同呢?Set集中不是不能含有相同 怎样从java集合类set中取出数据? java中set集合的长度 最长有多长set集合长度范围 java中set集合中元素不重复是根据什么来判断的 java中集合类的好处? set集合中是怎么确保集合元素的唯一性?他的实现原理是什么? java过滤器中实现Filter的类怎么写 我是个初学java的新人,想问问大家关于java中抽象类和接口的具体定义希望你们能给举个例子说明白点谢谢 关于java树结构的实现请问java中有没有实现Tree型结构的类(如链表在java中可以用List实现),是不是还要自己写?另外TreeSet或TreeMap是不是能实现tree结构?若能,请写一个小例子, java中,集合类有什么作用? 帮我用JAVA做下下面2题谢谢1.按要求编写一个Java应用程序:(1)定义一个接口CanCry,描述会吼叫的方法public void cry().(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口.实现方法的功能分别为:打印输出 运用JAVA中大数类实现大数的四则运算使用JAVA中自带的大数类,实现无线长度整数的加减乘除运算. 寻求java集合类的有关练习题 1:下列关于继承性的描述中,错误的是( )A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外其他成员 C.Java语言支持单重继承和多重继承D.Java语言通过接口可使子类使用 java标签,用c:forEach循环,将集合里面的数据显示在表格中如题,已知集合:,取出集合里的数据插入表格中,使得每行显示3个,怎么实现每行显示3个? java集合中 能添加不同类型的元素吗 java 获取两个map集合中不同的数据, 如题,A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承多继承的说法?所以,java不存在多继承这一说法.有些人说 java 可以实现多个接口 从而实现了 多继承.这个不叫做 多继