Java LinkedHashSet loadFactor

时间:2015-12-22 20:53:38

标签: java data-structures

我对LinkedHashSet中loadFactor的推理感到好奇。如果我对Linked List Hash的理解是正确的,则冲突保存在LL中,并且增加loadFactor只会减少链接List节点的数量。我认为这意味着你的哈希函数不会减少集合的负载。

提前感谢您的专业知识。

2 个答案:

答案 0 :(得分:0)

不存在的条目不占用链接节点。

加载因子仅适用于基础Object[]数组,但它只会在未占用的插槽中存储null,而不是链接节点。

只有被占用的条目被链接(原因相当明显)。

它实际上是一个哈希表,它存储链接的条目节点

您需要查看实施。

答案 1 :(得分:0)

  1. 无论处理方式如何,哈希表(例如HashSet和HashMap)中的冲突都很糟糕,应该避免。降低负载系数可以减少内存成本的冲突。

  2. 链表是用于缓解Java中普通旧HashSet和HashMap中的冲突的方法。

  3. LinkedHashSet(和LinkedHashMap)在所有元素/键上添加其他链接列表,以实现更快,更一致的迭代。该链表与碰撞缓解策略无关;它仅在迭代时使用,尤其适用于稀疏集/映射。