早在 Java 2 中以前,Java 就提供了特設類。好比:Dictionary, Vector, Stack, 和 Properties 這些類用來存儲和操做對象組。java
雖然這些類都很是有用,可是它們缺乏一個核心的,統一的主題。因爲這個緣由,使用 Vector 類的方式和使用 Properties 類的方式有着很大不一樣。算法
集合框架被設計成要知足如下幾個目標。數組
該框架必須是高性能的。基本集合(動態數組,鏈表,樹,哈希表)的實現也必須是高效的。數據結構
該框架容許不一樣類型的集合,以相似的方式工做,具備高度的互操做性。架構
對一個集合的擴展和適應必須是簡單的。框架
爲此,整個集合框架就圍繞一組標準接口而設計。你能夠直接使用這些接口的標準實現,諸如: LinkedList, HashSet, 和 TreeSet 等,除此以外你也能夠經過這些接口實現本身的集合。性能
從上面的集合框架圖能夠看到,Java 集合框架主要包括兩種類型的容器,一種是集合(Collection),存儲一個元素集合,另外一種是圖(Map),存儲鍵/值對映射。Collection 接口又有 3 種子類型,List、Set 和 Queue,再下面是一些抽象類,最後是具體實現類,經常使用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。spa
集合框架是一個用來表明和操縱集合的統一架構。全部的集合框架都包含以下內容:設計
接口:是表明集合的抽象數據類型。例如 Collection、List、Set、Map 等。之因此定義多個接口,是爲了以不一樣的方式操做集合對象對象
實現(類):是集合接口的具體實現。從本質上講,它們是可重複使用的數據結構,例如:ArrayList、LinkedList、HashSet、HashMap。
算法:是實現集合接口的對象裏的方法執行的一些有用的計算,例如:搜索和排序。這些算法被稱爲多態,那是由於相同的方法能夠在類似的接口上有着不一樣的實現。
除了集合,該框架也定義了幾個 Map 接口和類。Map 裏存儲的是鍵/值對。儘管 Map 不是集合,可是它們徹底整合在集合中。
Java 集合框架提供了一套性能優良,使用方便的接口和類,java集合框架位於java.util包中, 因此當使用集合框架的時候須要進行導包。