当前位置:网站首页>图解HashCode存在的意义
图解HashCode存在的意义
2022-04-23 05:42:00 【ShuangTwo】
图解HashCode存在的意义
HashCode存在的意义:减少equals比较次数,提高执行速读。
对象加入HashSet时HashCode就起到了这样的作用。
下面是关于“HashSet检查重复”的描述,来源于《Headfirst java》第二版。
当你把对象加入 HashSet 时,HashSet 会先计算对象的 hashcode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashcode 值作比较,如果没有相符的 hashcode,HashSet 会假设对象没有重复出现。但是如果发现有相同 hashcode 值的对象,这时会调用 equals()方法来检查 hashcode 相等的对象是否真的相同。如果两者相同,HashSet 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。(摘自我的 Java 启蒙书《Headfirst java》第二版)。这样我们就大大减少了 equals 的次数,相应就大大提高了执行速度。
整理的图解,希望帮助大家理解。
HashCode起到的作用,比较加入对象的HashCode与已经加入对象的HashCode,重要的一步是当比较不同时直接将对象加入散列表,不需使用equals比较。根据我们的经验,加入的对象绝大多数都是不存在,这样一来实际上用到equals比较的情况就减少了,性能得以提升。
版权声明
本文为[ShuangTwo]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43356538/article/details/123874651
边栏推荐
- Utf8 to STD: string and STD: string to utf8
- [machine learning] scikit learn introduction
- C3P0数据库连接池使用
- Date增加天数
- World and personal development
- OSI层常用协议
- Common interview questions - 4 (MySQL)
- Frequently asked interview questions - 1 (non technical)
- PreparedStatement防止SQL注入
- Range of numbers (dichotomous classic template topic)
猜你喜欢
随机推荐
mysql-触发器、存储过程、存储函数
Pilotage growth · ingenuity empowerment -- yonmaster developer training and pilotage plan is fully launched
The difference between cookie and session
Split and merge multiple one-dimensional arrays into two-dimensional arrays
shell指令学习1
Package mall system based on SSM
C, class library
橙单微服务之批量导入
MySQL的锁机制
PHP处理json_decode()解析JSON.stringify
踩坑:nacos利用startup.cmd -m standalone启动错误
The list attribute in the entity is empty or null, and is set to an empty array
Batch import of orange single micro service
Navicate连接oracle(11g)时ORA:28547 Connection to server failed probable Oeacle Net admin error
Sea Level Anomaly 和 Sea Surface Height Anomaly 的区别
软件架构设计——软件架构风格
poi导出excel,行相同数据自动合并单元格
Summary of redis classic interview questions 2022
Error 2003 (HY000) when Windows connects MySQL: can't connect to MySQL server on 'localhost' (10061)
No.1.#_ 6 Navicat shortcuts