摘要: 你知道 hash 的实现吗?为什么要这样实现? 在 JDK 1.8 的实现中,是通过 hashCode() 的高16位异或低16位实现的:(h = k.hashCode()) ^ (h >>> 16)。 主要是从速度、功效、质量 来考虑的,这么做可以在桶的 n 比较小的时候,保证高低 bit 都参与 阅读全文
posted @ 2019-07-02 17:08 开顺 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 首先,capacity 为 2的整数次幂的话,计算桶的位置 h&(length-1) 就相当于对 length 取模,提升了计算效率; 其次,capacity 为 2 的整数次幂的话,为偶数,这样 capacity-1 为奇数,奇数的最后一位是 1,这样便保证了 h&(capacity-1) 的最后 阅读全文
posted @ 2019-07-02 17:02 开顺 阅读(896) 评论(0) 推荐(1) 编辑