在第782页的“程序员Java KJP认证指南”(第7版)中,我注意到它说使用哈希表和链表实现具体的类HashSet。当我浏览主要的java教程网站http://download.oracle.com/javase/tutorial/collections/implementations/index.html时,它似乎不是真的。请指教。感谢。
答案 0 :(得分:5)
HashSet
是HashMap
的包装器,后者又使用数组。 HashMap
是哈希表,但不是Hashtable
类。除了解决冲突之外,HashSet与列表没有任何关系。
LinkedHashSet
也有自己的链接列表,但不使用LinkedList
类。
答案 1 :(得分:0)
根据HashSet的代码,
public HashSet() {
map = new HashMap<>();
}
基于哈希表的Map接口实现。此实现提供所有可选的映射操作,并允许空值和空键。 (HashMap类大致相当于Hashtable,除了它是不同步的并且允许空值。)这个类不保证地图的顺序,特别是,它不保证顺序会随着时间的推移保持不变。 / p>