對象封裝數據,對象多了需存儲。若對象數量不確定,數組固定長度不再適用,集合容器應運而生。
因內部數據結構不同(數組、鏈表、紅黑樹、哈希表…),衍生出多種具體容器。向上抽象,頂層接口為 Collection。

boolean add(E e):單個添加boolean addAll(Collection<? extends E> c):批量添加boolean remove(Object obj):刪除指定元素boolean removeAll(Collection<?> c):刪除交集(從調用者中移除與參數集合相同的元素)void clear():清空boolean contains(Object obj):包含單個boolean containsAll(Collection<?> c):包含全部boolean isEmpty():是否為空int size():元素個數Iterator<E> iterator():統一遍歷入口,返回迭代器對象(內部類實現,屏蔽底層數據結構差異)。迭代器像「抓娃娃機的夾子」:統一操作接口,屏蔽底層細節。
boolean retainAll(Collection<?> c):保留交集(與 removeAll 相反)Object[] toArray():轉數組public interface Iterator<E> {
boolean hasNext(); // 是否有下一個
E next(); // 獲取下一個並移動游標
void remove(); // 刪除上次 next() 返回的元素(可選操作)
}
所有 Collection 實現類必須提供自帶的 Iterator 實現,保證遍歷行為正確。
Collection 共性 API,再深入 List、Set、Queue 子體系差異。Collection/List/Set 編程,具體實現(ArrayList/HashSet…)在構造時注入。