HashSet使用哪种数据结构?

时间:2014-06-21 18:35:06

标签: java collections hashset

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

另请告诉我使用linkedhashset,treeset,hashmap,hashtable,linkedhashmap,treemap使用的内部数据结构。

1 个答案:

答案 0 :(得分:2)

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;
}