Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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/0/performance/5.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负载因子权衡_Java_Performance_Collections_Hashmap - Fatal编程技术网

Java负载因子权衡

Java负载因子权衡,java,performance,collections,hashmap,Java,Performance,Collections,Hashmap,我听说,HashMap中的负载因子将存储桶恢复到其他位置,最好将其保持在0.75,这样当大小达到0.75*当前容量时,存储桶数组将重新分配到当前容量的两倍 例如,我们有16个容量;当大小变为16*0.75=12时,数组将重新分配。此时,我们甚至在数组触及16之前就创建了额外的16个元素,因为它的内存效率很低 如果它的时间效率很高,那么它是如何变成的,或者在使用负载因子时是否有任何折衷?当冲突率较低时,HashMap的性能最好。容量越大,发生碰撞的可能性越小。i、 e.同一桶中有两把钥匙 为了避免

我听说,HashMap中的负载因子将存储桶恢复到其他位置,最好将其保持在0.75,这样当大小达到0.75*当前容量时,存储桶数组将重新分配到当前容量的两倍

例如,我们有16个容量;当大小变为16*0.75=12时,数组将重新分配。此时,我们甚至在数组触及16之前就创建了额外的16个元素,因为它的内存效率很低


如果它的时间效率很高,那么它是如何变成的,或者在使用负载因子时是否有任何折衷?

当冲突率较低时,HashMap的性能最好。容量越大,发生碰撞的可能性越小。i、 e.同一桶中有两把钥匙

为了避免高冲突率,使用了一个负载因子来确保底层阵列的填充率永远不会超过75%


顺便说一句,与其他开销相比,阵列使用的额外内存很少。

欢迎使用SO,在发布您自己的问题之前,请尝试搜索相关问题!您可能会发现这个问题提供了信息。这个问题似乎与函数式编程无关。“这意味着它的内存效率低下。”->那么您的意思是哈希表应该等到完全填满后再分配新内存?内存效率(用你的话说)-这不是唯一的因素;请阅读为什么建议使用0.75的加载因子。此外,如果您碰巧有一个自定义哈希代码函数,并且它不好(例如int hashCode(){return 0;}),那么即使是0.75的因子也不会有任何好处。“Filled up”是一个奇怪的概念。您分配了16个额外的存储桶,但一个存储桶不一定对应于一个条目。与放入桶中的条目相比,桶实际上相对便宜。容量越晚?@gknicker谢谢。)