在这里查看 Java HashMap 的实现:http: //www.docjar.com/html/api/java/util/HashMap.java.html我注意到以下内容:
使用的内部数据结构是一个数组,它在每个索引处存储对链表中第一个条目的引用。数组索引基于键的哈希码,而链表表示该特定哈希码的存储桶。我发现有趣的是 indexFor(int h, int length) 方法,对于给定的键,该方法确定要查看数组中的哪个桶。但是从某种意义上说,return h & (length - 1) 的实现看起来很奇怪对于与给定数组索引不一致的不确定数量的哈希码,该方法将返回 0。因此,无论您为对象实现什么唯一哈希码,数组中的 0 存储桶很可能会充满对象,因此您不要从应该为您提供的唯一哈希码中受益,即更快的数据访问。
我错过了什么吗?
克里斯蒂安