1. 什麼是容器
#在Java當中,有一個類別專門用來存放其它類別的對象,這個類別就叫做容器,它就是將若干性質相同或相近的類別物件組合在一起而形成的一個整體。
幾種常見容器介紹:
java學習影片教學推薦:java教學影片
1. List
有序的collection(也稱為序列)。此介面的使用者可以對清單中每個元素的插入位置進行精確地控制。使用者可以根據元素的整數索引(在清單中的位置)存取元素,並搜尋清單中的元素。與 set 不同,清單通常允許重複的元素。
Arraylist:Object陣列
Vector: Object陣列
LinkedList: 雙向鍊錶(JDK1.6之前為循環鍊錶,JDK1.7取消了循環)
2. Set
一個不包含重複元素的collection。更確切地講,set 不包含滿足 e1.equals(e2) 的元素對 e1 和 e2,並且最多包含一個 null 元素。如其名稱所暗示的,此介面模仿了數學上的 set 抽象。
HashSet(無序,唯一): 基於 HashMap 實現的,底層採用 HashMap 來保存元素。
LinkedHashSet: LinkedHashSet 繼承與 HashSet,並且其內部是透過 LinkedHashMap 來實現的。
LinkedHashMap 其內部是基於 Hashmap 實作一樣,不過還是有一點點區別的。
TreeSet(有序,唯一): 紅黑樹(自平衡的排序二元樹)。
3. Map
將鍵對應到值的物件。一個映射不能包含重複的鍵;每個鍵最多只能映射到一個值。
HashMap: JDK1.8之前HashMap由陣列 鍊錶組成的,陣列是HashMap的主體,鍊錶則是主要為了解決哈希衝突而存在的(「拉鍊法」解決衝突)。 JDK1.8以後在解決哈希衝突時有了較大的變化,當鍊錶長度大於閾值(預設為8)時,將鍊錶轉換為紅黑樹,以減少搜尋時間
LinkedHashMap: LinkedHashMap繼承自HashMap,所以它的底層仍然是基於拉鍊式散列結構即由數組和鍊錶或紅黑樹組成。
另外,LinkedHashMap 在上面結構的基礎上,增加了一個雙向鍊錶,使得上面的結構可以保持鍵值對的插入順序。同時透過對鍊錶進行對應的操作,實現了存取順序相關邏輯。
Hashtable: 陣列 由鍊錶組成的,陣列是 HashMap 的主體,鍊錶則是主要為了解決雜湊衝突而存在的。
TreeMap: 紅黑樹(自平衡的排序二元樹)
#4. Queue
在處理元素前用來儲存元素的collection。除了基本的 Collection 操作外,佇列還提供其他的插入、擷取和檢查操作。
相關文章教學推薦:java語言入門
#以上是java中的容器是指什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!