Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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_Dictionary_Hashmap_Hashtable - Fatal编程技术网

Java 当数据结构的大小达到阈值时,是否所有类似字典的数据结构都需要重新刷新?

Java 当数据结构的大小达到阈值时,是否所有类似字典的数据结构都需要重新刷新?,java,dictionary,hashmap,hashtable,Java,Dictionary,Hashmap,Hashtable,我想知道那些类似字典的数据结构(Hashtable、HashMap、LinkedHashMap、TreeMap、ConncurrentHashMap、SortedMap等)在其大小达到阈值时是否需要进行重新分级操作?因为每次调整表的大小都非常昂贵,所以我想知道在调整表的大小时是否还有其他不需要重新灰化的方法,或者是否有任何方法可以提高此类操作的性能?SortedMap(TreeMap)不需要重新灰化,它被设计为红黑树,因此是自平衡的 为了提高性能,可能需要重新设置与封闭哈希相关的结构,不过这是一

我想知道那些类似字典的数据结构(Hashtable、HashMap、LinkedHashMap、TreeMap、ConncurrentHashMap、SortedMap等)在其大小达到阈值时是否需要进行重新分级操作?因为每次调整表的大小都非常昂贵,所以我想知道在调整表的大小时是否还有其他不需要重新灰化的方法,或者是否有任何方法可以提高此类操作的性能?

SortedMap(TreeMap)不需要重新灰化,它被设计为红黑树,因此是自平衡的

为了提高性能,可能需要重新设置与封闭哈希相关的结构,不过这是一种折衷


因此,它可以在不重新灰化的情况下实现,这就是引入负载因子参数的目的。

以改进基于应用程序的性能估计近似初始容量,并在为数据结构分配内存时选择正确的负载因子

除非实现自己的HashMap,否则无法避免重新散列

其他一些事实:重置只发生在HashMap、HashTable等与HashMap相关的数据结构上。因此,所有非散列数据结构,如treemap、sortedmap(是一个接口,因此我们可以将其从图片中删除)在达到限制时都不会重新散列


当ArrayList达到阈值时,总是会在其上重新调整大小。因此,如果在数据结构之间有大量插入和删除,请使用链表

不,所有的东西都需要重做。不过,如果你能提前估计出尺寸,这将有助于避免重新灰化。