java.lnag.Object中对hashCode的约定:

1. 在一个应用程序执行期间,如果一个对象的equals方法做比较所用到的信息没有被修改的话,则对该对象调用hashCode方法多次,它必须始终如一地返回同一个整数。
   2. 如果两个对象根据equals(Object o)方法是相等的,则调用这两个对象中任一对象的hashCode方法必须产生相同的整数结果。
   3. 如果两个对象根据equals(Object o)方法是不相等的,则调用这两个对象中任一个对象的hashCode方法,不要求产生不同的整数结果。但如果能不同,则可能提高散列表的性能。

有一个概念要牢记,两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。

所以hashcode相等只能保证两个对象在一个HASH表里的同一条HASH链上,继而通过equals方法才能确定是不是同一对象,如果结果为true, 则认为是同一对象不在插入,否则认为是不同对象继续插入。

最新文章

  1. Windows phone重写返回键
  2. AppBox升级进行时 - 关联表查询与更新(Entity Framework)
  3. SQLite数据库在多线程写锁文件的解决办法
  4. 2016 - 1 - 24 NSURLSession (一)
  5. 百度之星Astar2016 Round2A
  6. System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本
  7. JSTL-core核心代码标签库中的forEach,remove, forTokens,choose,when,otherwise,redirect 标签
  8. gulp和webpack初探
  9. oracle查看表锁及解锁
  10. linux下的webserver BOA及CGIC库的使用指南(转帖)
  11. 【2】构建一个SSM项目结构
  12. 让你成功安装vscode中go的相关插件
  13. IntelliJ IDEA打包WAR并部署运行(mac osx)将Web项目War包部署到Tomcat服务器基本步骤(完整版)
  14. 理解面向过程(OPP)、面向对象(OOP)、面向切面(AOP)
  15. centos6.6 安装MariaDB
  16. JAVA设计模式-设计原则
  17. getContentLength() 指为 -1 的解决办法
  18. Xcode 控制台打印Unicode字符串转换为中文
  19. Javascript面向对象三大特性(封装性、继承性、多态性)详解及创建对象的各种方法
  20. UVA 247 - Calling Circles (Floyd)

热门文章

  1. [Demo_03] MapReduce 实现多类型输出
  2. January 09th, 2018 Week 02nd Tuesday
  3. 【Alpha - 五成胜算队】博客列表
  4. Java设计模式之十一 ---- 策略模式和模板方法模式
  5. 网页中的meta标签的作用
  6. 解决HTTP status code is not handled or not allowed
  7. go标准库的学习-encoding/base64
  8. go标准库的学习-net
  9. the security of smart contract- 2
  10. python3 day03 大纲