標籤:
Java中的容器類(List,Set,Map,Queue)
一、基本概念
Java容器類類庫的用途是“儲存對象”,並將其劃分為兩個不同的概念:
1)Collection。一個獨立元素的序列,這些元素都服從一條或多條規則。List必須按照插入的順序儲存元素,而Set不能有重複的元素。Queue按照排隊規則來確定對象產生的順序(通常與它們被插入的順序相同)。
2)Map。一組成對的“索引值對”對象,允許你使用鍵來尋找值。ArrayList允許你使用數字來尋找值,因此在某種意義上講,它將數字與對象關聯在了一起。映射表允許我們使用另一個對象來尋找某個對象,它也被稱為“關聯陣列”,因為它將某些對象與另外一些對象關聯在了一起;或者被稱為“字典”,因為你可以使用鍵對象來尋找值對象,就像在字典中使用單詞來定義一樣。
完整容器分類,包括抽象類別和遺留構建(不包括Queue的實現):
注意:
Collections是java.util下的類,包含各種有關集合操作的靜態方法;而Collection是java.util下的介面,是各種集合結構的父介面。
二、容器類的相關描述
三、總結
1. 各種Collection和各種Map都可以在你向其中添加更多的元素時,自動調整其尺寸。容器不能持有基本類型,但是自動封裝機制會仔細地執行基本類型到容器中的所持有的封裝器類型之間的雙向轉換。
2. ArrayList:大量的隨機訪問;LinkedList:經常從表中間插入或刪除元素;
3. 各種Queue以及棧的行為,有LinkedList提供支援;
4. Map是一種將對象(而非數字)與對象相關聯的設計。
HashMap:快速存取;TreeMap:保持“鍵”始終處於排序狀態,沒有HashMap快;LinkedHashMap:保持元素的插入順序,但也通過散列提供了快速存取能力。
5. Set不接受重複元素。
HashSet:提供最快的查詢速度;TreeSet:保持元素處於排序狀態;LinkedHashSet:以插入的順序儲存元素。
6. Map與Collection之間的唯一重疊就是Map可以使用entrySet()和values()方法來產生Collection。
Java中的容器類(List,Set,Map,Queue)