Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap如何确定将内容放在何处?_Java_Hashmap - Fatal编程技术网

Java HashMap如何确定将内容放在何处?

Java HashMap如何确定将内容放在何处?,java,hashmap,Java,Hashmap,HashMap中的add方法如何确定键在HashMap中的位置?比如,如果我试图将S、T、A、C、K放入大小为10的HashMap中,它如何确定每个字母的去向?对象哈希代码的最低有效位用于选择一个bucket。注意,没有大小为10的java.util.HashMap这样的东西,大小必须是2的幂,以便可以屏蔽位以选择一个bucket。如果将10传递给构造函数,将得到一个包含16个bucket的HashMap 因此,为了清晰起见,将其减少到8位,如果S返回hashcode 123,java就可以了

HashMap中的add方法如何确定键在HashMap中的位置?比如,如果我试图将S、T、A、C、K放入大小为10的HashMap中,它如何确定每个字母的去向?

对象哈希代码的最低有效位用于选择一个bucket。注意,没有大小为10的java.util.HashMap这样的东西,大小必须是2的幂,以便可以屏蔽位以选择一个bucket。如果将10传递给构造函数,将得到一个包含16个bucket的HashMap

因此,为了清晰起见,将其减少到8位,如果S返回hashcode 123,java就可以了

01111011 & 00001111 -> 00001011
然后把它放在桶11里


真正的散列映射还应用了一个二级散列函数,该函数将位向右移动,以确保在最低有效位中有具有一定熵的数据,这样即使它们的散列码函数不是很好,也有很好的机会均匀分布。

对象散列码的最低有效位用于选择一个铲斗。注意,没有大小为10的java.util.HashMap这样的东西,大小必须是2的幂,以便可以屏蔽位以选择一个bucket。如果将10传递给构造函数,将得到一个包含16个bucket的HashMap

因此,为了清晰起见,将其减少到8位,如果S返回hashcode 123,java就可以了

01111011 & 00001111 -> 00001011
然后把它放在桶11里


真正的散列映射还应用了一个二级散列函数,该函数将位向右移动,以确保在最低有效位中存在具有一定熵的数据,这样即使它们的散列码函数不是很好,也有很好的机会均匀分布。

对象的散列码方法它对其进行散列。我敢肯定,如果你在谷歌上搜索它,你会在hashtables等网站上找到一篇或三篇不错的维基百科文章。我不同意上一个问题中的内容是对这个问题的满意答案。Object的hashCode方法它会对它进行散列。我敢肯定,如果你用谷歌搜索,你会在hashtables等网站上找到一篇或三篇不错的维基百科文章。我不同意上一个问题中的内容是这个问题令人满意的答案。