如果你知道,请描述一下原因。我用谷歌搜索了一下,但没有找到有充分解释的答案。
是为了在你的hashCode为负时使存储桶的索引为正吗?
发布于 2014-12-02 22:16:00
对于HashMap,存储映射条目的数组中的索引是这样计算的(其中h是根据键的hashCode计算的):
static int indexFor(int h, int length) {
return h & (length-1);
}其中length是数组的长度。
这只在length是2的幂的时候有效,如果length不是2的幂,你就必须把这段代码改成效率较低的return h % length。
https://stackoverflow.com/questions/27251480
复制相似问题