![](/img/trans.png)
[英]Why does the StringBuffer class uses an Array as it's underlying data structure instead of a LinkedList?
[英]Java Collection: Does concrete class HashSet which uses Hash table implemented using LinkedList as its data structure?
在第782頁的“ Khalid Mughal的Java SCJP認證程序員指南-第三版”一書中,我注意到它說具體的類HashSet是使用哈希表和鏈接列表實現的。 當我瀏覽主要的Java教程網站http://download.oracle.com/javase/tutorial/collections/implementations/index.html時 ,這似乎並不正確。 請指教。 謝謝。
HashSet
是HashMap
的包裝,后者依次使用數組。 HashMap
是一個哈希表,但不是Hashtable
類。 HashSet除了解決沖突以外,與列表沒有任何關系。
LinkedHashSet
也具有自己的鏈接列表,但不使用LinkedList
類。
根據HashSet的代碼,
public HashSet() {
map = new HashMap<>();
}
基於哈希表的Map接口的實現。 此實現提供所有可選的映射操作,並允許空值和空鍵。 (HashMap類與Hashtable大致等效,不同之處在於它是不同步的,並且允許為null。)此類不保證映射的順序,尤其是不能保證該順序隨時間保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.