和HashMap,Hashtable类中配合使用的.
是存储在哈希表(Hash Table)里的哈希码(Hash Code)。
HashTable是java的一种数据存储结构,用高查找效率的哈希算法来定位查找对象。
一般,当你实例化一个对象以后,jvm就把该对象的地址存储在hash table里。
另外,作为 java.lang.objec中的方法,重写equals()方法一定不要忘记重写
hashCode()方法。
简单的说,hashCode就是一种查找的索引值。就好比一个数组,你用数组下标来查找
你的数组元素,同样,hashCode来查找hashTable中的存储元素。当然,作为散列方
式的查找和存储,要比数组这种线性数据结构复杂的多。这涉及到hash函数的构造,
hash Collision等问题,具体的你可以看数据结构方面的书籍。
而每个对象在内存当中的存储组织方式就是利用这种散列方式存储,当然也就有它的
hash Code了,如果想获取这个对象在Hash 表中的位置,就可以调用
Object.hashCode()
结果返回int型(我没记错的话好像是6位)
还有一点需要注意的是:hashcode 相等,则对象一定一样;hashcode 不相等,对象
也可能相等(不是相同), 如果对于不等的对象构造不同的hashCode那么将会提高
hash表的性能。(具体原因可以查看数据结构中hash表的构造方式) |