Java Collection:具体类HashSet使用使用LinkedList实现的Hash表作为其数据结构吗?

时间:2011-09-16 20:40:21

标签: java collections

在第782页的“程序员Java KJP认证指南”(第7版)中,我注意到它说使用哈希表和链表实现具体的类HashSet。当我浏览主要的java教程网站http://download.oracle.com/javase/tutorial/collections/implementations/index.html时,它似乎不是真的。请指教。感谢。

2 个答案:

答案 0 :(得分:5)

HashSetHashMap的包装器,后者又使用数组。 HashMap是哈希表,但不是Hashtable类。除了解决冲突之外,HashSet与列表没有任何关系。

LinkedHashSet也有自己的链接列表,但不使用LinkedList类。

答案 1 :(得分:0)

根据HashSet的代码,

public HashSet() {
    map = new HashMap<>();
}

基于哈希表的Map接口实现。此实现提供所有可选的映射操作,并允许空值和空键。 (HashMap类大致相当于Hashtable,除了它是不同步的并且允许空值。)这个类不保证地图的顺序,特别是,它不保证顺序会随着时间的推移保持不变。 / p>