Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 如何基于负载因子在ConcurrentHashMap中对元素进行分组_Java_Hashmap_Concurrenthashmap_Load Factor - Fatal编程技术网

Java 如何基于负载因子在ConcurrentHashMap中对元素进行分组

Java 如何基于负载因子在ConcurrentHashMap中对元素进行分组,java,hashmap,concurrenthashmap,load-factor,Java,Hashmap,Concurrenthashmap,Load Factor,我在一些帖子中读到: ConcurrentHashMap根据基于loadfactor的接近度对元素进行分组 这种分组是如何发生的 假设我重写hashCode()函数,使其始终返回1。现在,loadfactor的较高值和较低值将如何影响对ConcurrentHashMap的插入 现在我重写了hashCode()函数,以便它总是返回不同的hashCode。现在,loadfactor的较高值和较低值将如何影响对ConcurrentHashMap的插入 hashmap本质上是一个列表数组。例如,假设一个

我在一些帖子中读到:

ConcurrentHashMap根据基于loadfactor的接近度对元素进行分组

  • 这种分组是如何发生的

  • 假设我重写
    hashCode()
    函数,使其始终返回1。现在,
    loadfactor
    较高值和较低值将如何影响对ConcurrentHashMap的插入

  • 现在我重写了
    hashCode()
    函数,以便它总是返回不同的hashCode。现在,
    loadfactor
    较高值和较低值将如何影响对ConcurrentHashMap的插入


  • hashmap本质上是一个列表数组。例如,假设一个给定的hashmap有一个包含100个列表的数组。当您向其中添加某些内容时,将计算该对象的哈希代码。然后使用该值的模数和列表数(在本例中为100)来确定将其添加到哪个列表中。所以,如果您添加一个hashcode为13的对象,它将被添加到列表13中。若您添加一个hascode为12303512的对象,它将被添加到列表12中

    加载因子告诉hashmap何时增加列表的数量。它基于整个地图中的项目数量和当前容量

    在第一个场景中,hashcode总是返回1,无论有多少个列表,对象都会在同一个列表中结束(这是错误的)。在第二个场景中,它们将更均匀地分布在列表中(这是好的)


    由于加载因子基于映射的总体大小,而不是列表的大小,因此哈希代码的质量实际上并不与加载因子交互。在第一个场景中,它将像在第二个场景中一样增长,但不管怎样,所有内容最终都将在同一个列表中。

    hashmap本质上是一个列表数组。例如,假设一个给定的hashmap有一个包含100个列表的数组。当您向其中添加某些内容时,将计算该对象的哈希代码。然后使用该值的模数和列表数(在本例中为100)来确定将其添加到哪个列表中。所以,如果您添加一个hashcode为13的对象,它将被添加到列表13中。若您添加一个hascode为12303512的对象,它将被添加到列表12中

    加载因子告诉hashmap何时增加列表的数量。它基于整个地图中的项目数量和当前容量

    在第一个场景中,hashcode总是返回1,无论有多少个列表,对象都会在同一个列表中结束(这是错误的)。在第二个场景中,它们将更均匀地分布在列表中(这是好的)


    由于加载因子基于映射的总体大小,而不是列表的大小,因此哈希代码的质量实际上并不与加载因子交互。在第一个场景中,它将像在第二个场景中一样增长,但不管怎样,所有内容最终都将在同一个列表中。

    如果hashcode负责分发,那么当loadfactor出现在图片中时,它将如何影响分发接近0或1,正如我已经解释过的,如果所有对象都具有相同的hashcode,负载系数无关紧要。地图上的查找退化为未排序列表中的搜索性能。如果hashcode负责分布,那么当loadfactor出现在图片中时,它如何影响分布接近0或1,正如我已经解释过的,如果所有对象都具有相同的hashcode,则加载因子无关紧要。地图上的查找退化为未排序列表中的搜索性能。