2019独角兽企业重金招聘Python工程师标准>>>

如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?

----答案是 可以

原因:

在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。

这里不可以重复是说equals和hashcode只要有一个不等就可以了。

例子:

TestObject t1= new TestObject();
t1.A=1;
TestObject t2= new TestObject();
t1.A=2;
Map map= new HashMap();

@Override
public int hashCode() {
return 5;
}

map.put(t1, "A");
map.put(t2,"B");

System.out.println(map.get(t1));
System.out.println(map.get(t2));

----A

B

一、当我们向一个set、HashMap、HashSet、HashTable集合中添加某个元素,集合会首先调用该对象的hashCode方法,

这样就可以直接定位它所存储的位置,若该处没有其他元素,则直接保存。
若该处已经有元素存在,就调用equals方法来匹配这两个元素是否相同,相同则不存,不同则散列到其他位置

转载于:https://my.oschina.net/chinaxy/blog/1825329

如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?...相关推荐

  1. hashCode之一--两个对象值相同,有相同的hash code

    两个对象值相同(x.equals(y) == true),则一定有相同的hash code. 这是java语言的定义:  因为:Hash,一般翻译做"散列",也有直接音译为&quo ...

  2. JavaScript如何比较两个对象字面量是否一样(key 和 value都对比)

    在写一个物流模版编辑的时候,遇到这样一个需求:如果用户编辑一个已经存在的物流模版,如果数据没有发生变化,就阻止用户提交.这样后台就不用重新写入数据库.当时觉得这不是什么大问题,就放开了. 后面在写一个 ...

  3. Java中对比两个对象中属性值[反射、注解]

    在Java中通常要比较两个对象在修改前与修改后的值是否相同,一般我们采用的是反射技术获取对象的get方法[或其他的方法]获取值并做比较.如果系统将修改的属性名称也显示出来,这样就能更直观的显示类中的哪 ...

  4. hashcode相等的两个对象一定相等吗_为什么重写 equals方法时一定要重写hashCode方法?...

    推荐阅读: 一线架构师总结SpringBoot,Cloud,Nginx与Docker,不信你搞不懂 47天洒热血复习,我终于"挤进"了字节跳动(附面经+学习笔记) 五年时间,从蘑菇 ...

  5. java复制两个对象报异常_Java中复制两个不同类的对象的属性

    Apache的开源包BeanUtils用来复制两个对象的属性,要使用这个Apache的开源包,要先去官网下载commons-beanutils-1.X.jar包,http://www.apache.o ...

  6. js中两个对象的比较

    代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...

  7. java虚拟机如何判断两个类相同_你有没有想过: Java 虚拟机是如何判断两个对象是否相同的?判断的流程是什么?...

    在Java程序运行时,会产生那么多的对象,那 Java 虚拟机是如何判断两个对象是否相同的呢?判断的流程是什么? 参考解答: Java 虚拟机会先判断两个对象的hashCode是否相同,如果hashC ...

  8. 判断两个对象是否相等java_判断两个对象的内容是否相等

    由于在做键盘导航组件的项目时,有这样一个需求,当用户传入按键字母和网址的映射时,如果和 localStorage 中的不一样那么就用 localStorage 中存储的,这个时候就需要比较两个对象的内 ...

  9. JavaScript 专题之如何判断两个对象相等

    JavaScript 专题系列第十二篇,讲解如何判断两个参数是否相等 前言 虽然标题写的是如何判断两个对象相等,但本篇我们不仅仅判断两个对象相等,实际上,我们要做到的是如何判断两个参数相等,而这必然会 ...

最新文章

  1. 2021年第十六届全国大学生智能汽车竞赛赛道铺设规范
  2. 数字内容交易平台php,Demila数字内容交易系统 v1.0
  3. Linux grep命令——文本搜索工具
  4. 【译】SQL Server索引进阶第八篇:唯一索引
  5. 会签是什么意思_后宫为什么要争宠·六
  6. CCF201312-5 I’m stuck
  7. python习题错误整理(一)
  8. linux卸载文件挂载,磁盘文件挂载与卸载
  9. 使用Python的basemap模块绘制地图的局部放大图(主图及放大的子图)
  10. 苹果手机显示有4g上不了网络连接服务器,苹果移动数据为什么叫蜂窝网络_蜂窝移动数据和4g有什么区别...
  11. 虚假评价检测(Spam Detection)最新工作综述
  12. 计算机高级工程师一般工资多少,高级工程师年薪是多少 分为哪些级别
  13. 电影影视网站对接微信公众号 日引流500+的实例教学
  14. HDU 3713 Double Maze
  15. java 打印出如下图案(菱形)
  16. 期货分仓软件 /股票分仓软件的功能有哪些?
  17. 解三元一次方程c语言,解三元一次方程的c语言程序
  18. Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
  19. sqlserver2008R2在配置复制分发时报错:在执行xp_cmdshell的过程中出错
  20. ubantu使用vsftp设置ftp上传 java添加系统用户限定ftp登录

热门文章

  1. 版本变迁_一本书遍览古今中外红楼梦版本变迁
  2. 用c语言链表编写便利店零售系统,链表实现多项式求和(C语言)
  3. mips汇编计算开方_清华考研辅导班-2020清华大学912计算机专业基础综合考研经验真题参考书目...
  4. xcode 可以打开xmind_原来xmind还有一款如此漂亮的思维导图工具
  5. 图像超分辨率近两年几篇优秀论文及代码
  6. 【技术综述】人脸风格化核心技术与数据集总结
  7. Lazada促进买家快速下单的方法是什么?店铺优惠劵使用技巧必须要知道
  8. lazada选品怎么做,东南亚母婴玩具类目选品分析
  9. 裁剪(Clipping)-Window GDI
  10. numpy-自定义ufunc函数和广播