Java HashCode相关知识
来源:互联网 发布:如何获取微博数据 编辑:程序博客网 时间:2024/06/06 02:23
hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值public int hashCode()返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。
一致性
在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行hashcode比较时所用的信息没有被修改。
equals
如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果,注:这里说的equals(Object) 方法是指Object类中未被子类重写过的equals方法。
如果两个hashCode()返回的结果相等,则两个对象的equals方法不一定相等。
附加
如果根据equals(java.lang.Object)方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。
HashMap对象是根据其Key的hashCode来获取对应的Value。
在重写父类的equals方法时,也重写hashcode方法,使相等的两个对象获取的HashCode也相等,这样当此对象做Map类中的Key时,两个equals为true的对象其获取的value都是同一个,比较符合实际。
0 0
- Java HashCode相关知识
- Java中的equals和hashcode相关知识之一
- 关于Hashcode以及相关知识
- [JAVA] hashcode相关
- java -- hashcode相关的内容
- Java 中"=="、equals、hashcode相关
- HashCode相关
- hashcode相关
- Java相关知识
- JAVA Socket 相关知识
- Java 注解相关知识
- Java相关知识
- JAVA相关知识
- 转:java相关知识
- java相关知识
- JAVA相关知识1
- Java多线程相关知识
- Java多线程相关知识
- hpu-【1059: 次方求和】
- 分布式调度系统的比较
- 20161103
- ICO图标的浏览器兼容性现状与应用方案
- HDU-5119 Happy Matt Friends(背包)
- Java HashCode相关知识
- 解决页面传到后台含中文参数时会乱码问题
- SVN使用要求
- Spring中jdbcTemplate的用法实例
- 用Java语言实现五种常用排序
- JZOJ4848. 永恒的契约
- [Linux C编程]数据库系统与文件的系统的区别
- 朴素贝叶斯分类算法的Python实现
- java注解的用法