Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashSet使用哪种数据结构?_Java_Collections_Hashset - Fatal编程技术网

Java HashSet使用哪种数据结构?

Java HashSet使用哪种数据结构?,java,collections,hashset,Java,Collections,Hashset,我曾在许多网站上看到hashset使用的内部数据结构是HashTable,但当我看到hashset.class在反编译后使用的是HashMap。现在我很困惑,请澄清我的困惑。hashset使用哪种数据结构 另外,请告诉我linkedhashset、treeset、hashmap、hashtable、linkedhashmap、treemap使用的内部数据结构。HashSet将值作为hashmap键的一部分在内部存储,并将一个伪值作为值 ,有关部分摘录如下: // Dummy value to a

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

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

HashSet将值作为hashmap键的一部分在内部存储,并将一个伪值作为值

,有关部分摘录如下:

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

看看源代码。是的,HashSet由HashMap支持。您应该仔细阅读这些类的Javadoc;它将回答这些问题中的大部分。@GeorgeNetu:不,我不认为这是一个重复的问题。@Makoto我同意这个问题是正确的,但我的意思是实现方面的问题。。。。。?在大多数情况下,这个问题在每个答案中都被忽略了。。我认为这不是一个合适的复制品,是的,这是正确的,但这几乎不像是一个答案。@Makoto这就是这些问题的问题:|