【问题标题】:Which data structure used by HashSet?HashSet 使用哪种数据结构?
【发布时间】:2014-08-12 05:41:02
【问题描述】:

我在许多网站上看到 hashset 使用的内部数据结构是 HashTable,但是当我看到 HashSet.class(反编译后)它使用的是 HashMap。现在我很困惑,请清除我的困惑。HashSet 使用哪种数据结构?

还告诉我linkedhashset、treeset、hashmap、hashtable、linkedhashmap、treemap使用的内部数据结构。

【问题讨论】:

标签: java collections hashset


【解决方案1】:

HashSet 在内部将值存储为HashMap 键的一部分,并将一个虚拟值作为值

Check the source code,相关部分已提取:

// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
private transient HashMap<E,Object> map;

public boolean add(E e) { 
 return map.put(e, PRESENT)==null;
}

【讨论】:

  • 是的,这是正确的,但它几乎不像是一个答案。
  • @Makoto 这就是这些问题的问题:|
猜你喜欢
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多