2009-04-21 91 views

回答

4

对于该特定交我指的收缩字典以便对于非收集元件的数目更适当的大小。

引擎盖下最哈希表由大阵列通常指向另一个结构支持诸如链表。该数组以初始化大小开始。当被添加到散列表元素的数量超过某一阈值(比方说阵列中元件的数量的70%),哈希表将扩大。这通常涉及创建一个两倍大小的新数组,并将这些值重新添加到新数组中。

一个的弱引用散列表中的问题/特征是,随着时间的推移被收集的元素。随着时间的推移,这可能会导致一些浪费的空间。想象一下,你添加了足够的元素来完成这个数组加倍过程。随着时间的推移,其中一些被收集,现在其余的元素可以适应前面的数组大小。

这未必是一件坏事,但它是浪费的空间。压缩是一个过程,在这个过程中,您基本上将散列表的基础数据结构缩小为数据的更合适的大小。

+0

非常真实,善于思考。谢谢。 – dotnetdev 2009-04-21 14:24:14