HashMap的长度为什么是2的幂次方 HashMap底层采用数组+链表+红黑树的结构存储。首先通过key的hash定位数组的位置,然后再根据equals判断key是否重复。这也是HashMap最基础的原理。 如何利用 hash值?才能让数组每个位置的元素数量更均匀。我们首先想到的是%。 任何数对2的幂次方取余,都等价于以下操作: hash % length == hash & (length - 1)而 & 比 % 的运行效率要高很多。