哈希linkedHashSet的java意义

标签 java collections hash

我知道以下关于 linkedHashSet 的事情

  • 维护插入顺序
  • 使用 LinkedList 来保持顺序
  • 我的问题是哈希是如何产生的??

我理解如果使用散列那么分桶的概念就进来了

但是,从检查 JDK 中的代码来看,LinkedHashSet 实现似乎只包含 构造函数而没有实现,所以我猜所有的逻辑都发生在 HashSet 中?

  • 所以 hashSet 默认使用 LinkedList?

让我这样提出我的问题......如果目标是写一个集合

  1. 保持独特的值(value)
  2. 使用链表保留插入顺序 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/

相关文章:

hibernate - 通过排序而不是索引字段在 hibernate 中映射列表

java - 为什么HashMap中有这么多空映射?

ruby-on-rails - 使用虚线路径 key 字符串访问 Ruby 哈希

c# - 通过 MVC Controller 返回序列化为 JSON 的大型集合

c++ - 执行简单哈希程序时出现运行时错误

php - 如何使用 codeigniter 正确实现 PHPass 密码哈希?

java - 如何在 for 循环中使用 getIndices ?

java - 如何仅用一种方法放置图像

java - 我可以在 Eclipse 的类型层次结构 View 中看到接口(interface)吗?

java - Play-Framework - 禁用公用文件夹修改重新加载