java.util.Collections 提供大量操作集合的實用靜態方法:
enumeration(Collection):產生舊式 Enumeration。max/min(Collection):依自然順序獲取最大/最小元素。max/min(Collection, Comparator):依比較器獲取極值。nCopies(int n, Object o):返回指向同一物件的不可變列表。subList(List, int min, int max):返回列表指定範圍的視圖。注意:min/max 作用於 Collection 而非 List,無需預先排序(二分搜尋才需排序)。
四種變體:unmodifiableCollection/List/Set/Map。將原集合傳入,返回唯讀視圖。嘗試修改會拋出 UnsupportedOperationException。最佳實踐:填充數據後立即替換引用,防止意外修改。也可在類內部保留可修改引用,對外暴露唯讀視圖。
synchronizedCollection/List/Set/Map 提供自動線程安全包裝。直接包裝新建集合,避免洩露非同步引用。
新集合內建 fail-fast 機制:迭代期間若其他線程修改結構,立即拋出 ConcurrentModificationException,而非稍後才發現錯誤。