如果这个cap刚好是2的幂次方呢,即4,8,16,32,64等这样的,这样的数已经满足条件了,再减去1,把数变成3,7,31,63。,即hash值的第5为是1,这样在扩容到32后,取索引得出来的结果就和16的不一样了,索引位置比oldCap大了一个oldCap值;,求余数,n是一个2的幂次方数,减去1,即后面全是1,前面全是0,与上这个hash,只能保证经过运算,结果都会在。,即hash值的第5为是0,这样在扩容到32后,取索引得出来的结果还是和16的一样;cap=1,2的0次方就等于1,返回的是就是4。