Java提供了大量持有對象的方式: (1) 數組將數字與對象聯繫起來。 它保存類型明確的對象,查詢對象時,不需要對結果做類型轉換。它可以是多維的, 可以保存基本類型的數據。 但是,數組一旦生成,其容量就不能改變。 (2)Collection保存單一的元素,而Map保存相關聯的鍵值對。有了Java的泛 ...
Java提供了大量持有對象的方式:
(1) 數組將數字與對象聯繫起來。 它保存類型明確的對象,查詢對象時,不需要對結果做類型轉換。它可以是多維的, 可以保存基本類型的數據。 但是,數組一旦生成,其容量就不能改變。
(2)Collection保存單一的元素,而Map保存相關聯的鍵值對。有了Java的泛型,你就可以指定容器中存放的對象類型, 因此你就不會將錯誤類型的對象放置到容器中,並且在從容器中獲取元素時,不必進行類型轉換。各種Collection 和各種Map都可以在你向其中添加更多的元素時,自動調整其尺寸。 容器不能持有基本類型,但是自動包裝機制會仔細地執行基本類型到容器中所持有的 包裝器類型之間的雙向轉換。
(3)像數組一樣,List也建立數字索引與對象的關聯,因此,數組和List都是排好序的容器。 List能夠自動擴充容量。
(4)如果要進行大量的隨機訪問, 就使用ArrayList(具有數組的特性),如果要經常從表中間插入或刪除元素,則應該使用 LinkedList(具有鏈表的特性)
(5)各種Queue(隊列)以及棧的行為, 由LinkedList提供支持。
(6)Map是一種將對象(而非數字)與對象相關聯的設計。HashMap設計用來快速訪問,而TreeMap保持 “鍵” 始終處於排序狀態,所以沒有 HashMap快。LinkedHashMap保持元素插入的順序, 但是也通過散列提供了快速訪問能力。
(7)Set不接受重覆元素。HashSet提供最快的查詢速度,而TreeSet保持元素處於排序狀態。
LinkedHashSet以插入順序保存元素。
Java容器的簡圖(不包含抽象類和遺留構件):
你可以看到, 其實只有四種容器: Map、List 、Set和 Queue,它們各有兩到三個實現版本。常用的容器用黑色粗線框表示。 點線框表示介面, 實線框表示普通的(具體的) 類。帶有空心箭頭的點線表示一個特定的類實現了一個介面, 實心箭頭表示某個類可以生成箭頭所指向類的對象。 例如, 任意的 Java的容器每天都會用到的工具, 它可以使程式更簡潔更強大更高效。 |
4.Java容器---Arrays & Collections工具類
5.Java容器---字元容器StringBuffer & StringBuilder
7.java容器---Comparable & Comparator
8.Java容器---Set基礎: HashSet & TreeSet & LinkedHashSet