取余:X % a == X & (a – 1)
注意点:
The default initial capacity - MUST be a power of two.
Why:为了保证得到的数组下标完全取决于 hash 值,与数组长度无关
1 2 3
| 16 -> 10000 15 -> 01111 32 -> 100000 31 -> 011111 64 -> 1000000 63 -> 0111111
|
为什么在定义HashMap的时候要尽量指定大小
- 扩容的时候回重新分配值,占用性能
- 尽量让hashMap 不要转红黑树,因为转红黑树非常占用性能
hash 高低位