hashcode


hashcode

文章插图
hashcode【hashcode】hashCode是jdk根据对象的地址或者字元串或者数字算出来的int类型的数值 详细了解请 参考 public int hashCode()返回该对象的哈希码值 。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能 。
基本介绍中文名:哈希码
外文名:HashCode
程式语言:Java
协定一致性在 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都是同一个,比较符合实际 。详细的图文例子请参考这里