我知道以下关于 linkedHashSet 的事情
- 维护插入顺序
- 使用 LinkedList 来保持顺序
- 我的问题是哈希是如何产生的??
我理解如果使用散列那么分桶的概念就进来了
但是,从检查 JDK 中的代码来看,LinkedHashSet 实现似乎只包含 构造函数而没有实现,所以我猜所有的逻辑都发生在 HashSet 中?
- 所以 hashSet 默认使用 LinkedList?
让我这样提出我的问题......如果目标是写一个集合
- 保持独特的值(value)
- 使用链表保留插入顺序 THEN ...无需散列即可轻松完成...也许我们可以将此集合称为 LinkedSet
看到一个类似的问题what's the difference between HashSet and LinkedHashSet但不是很有帮助
如果我需要进一步解释我的问题,请告诉我
最佳答案
错了。 LinkedHashSet
的实现其实都在LinkedHashMap
中。 (而 HashSet
的实现实际上全部在 HashMap
中。Le gasp!)
HashSet
根本没有链表。
完全有可能编写一个由链表支持的 LinkedSet
集合,以保持元素的唯一性——只是它的性能会很糟糕。
关于哈希linkedHashSet的java意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14639560/