Java 集合框架由三大層次構成:


最基本的集合介面,所有實現類別必須提供兩個標準建構子:無參數 (建立空集合) 與單一 Collection 參數 (複製建立)。
基本操作:
add(Object)、addAll(Collection)remove(Object)、removeAll(Collection)retainAll(Collection)注意: Collection 不提供 get() 隨機存取方法,因為包含 Set (自行維護內部順序)。檢查元素必須使用迭代器。
有序 Collection,可精確控制元素插入位置,支援索引存取 (類似陣列),允許重複元素。除了 iterator(),還提供 listIterator() 返回 ListIterator,支援雙向遍歷與增刪改操作。
size、isEmpty、get、set 為常數時間;隨機存取極快add 為攤銷常數時間,大量插入需 O(n);插入/刪除中間元素需移動後續元素ensureCapacity() 預先擴容提升效能不允許重複元素的 Collection (任意兩元素 e1.equals(e2)=false),最多一個 null。建構子傳入的 Collection 不得包含重複元素。警告: 可變物件若改變狀態導致 equals 回傳 true,將引發問題。
Key-Value 映射,Key 唯一。不繼承 Collection。提供三種集合視圖:Key 集合、Value 集合、Key-Value 映射集合。
ArrayList;頻繁插入刪除用 LinkedListHashMap;Key 需排序用 TreeMap;需插入順序兼顧速度用 LinkedHashMapHashSet;需排序用 TreeSet;需插入順序用 LinkedHashSetequals() 與 hashCode()List 而非 ArrayList),便於未來替換實現Vector、Hashtable、StackConcurrentMap、CopyOnWriteArrayList、CopyOnWriteArraySet 等import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
public class AddingGroups {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5));
Integer[] moreInts = {6, 7, 8, 9, 10};
collection.addAll(Arrays.asList(moreInts));
for (Integer i : collection)
System.out.print(i + ",");
}
}
// 輸出:1,2,3,4,5,6,7,8,9,10,
展示 Collection 建構子接受 Collection 參數初始化,以及 addAll() 批量新增元素。