新聞中心
Collections

java.lang.Object
|---java.util.Collections
public class Collections
extends Object
此類僅由對集合進行操作或返回集合的靜態(tài)方法組成。 它包含對集合進行操作的多態(tài)算法,“包裝器”,它返回由指定集合支持的新集合,以及其他一些零碎的東西。
如果提供給它們的集合或類對象為空,則此類的方法都會拋出 NullPointerException。
此類中包含的多態(tài)算法的文檔通常包括對實現(xiàn)的簡要描述。此類描述應被視為實現(xiàn)說明,而不是規(guī)范的一部分。只要遵守規(guī)范本身,實現(xiàn)者應該可以隨意替換其他算法。 (例如,sort 使用的算法不必是歸并排序,但它必須是穩(wěn)定的。)
此類中包含的“破壞性”算法,即修改它們操作的集合的算法,被指定為在集合不支持適當?shù)耐蛔冊Z(例如 set 方法)時拋出 UnsupportedOperationException。如果調用對集合沒有影響,這些算法可能會(但不是必須)拋出此異常。例如,在已排序的不可修改列表上調用 sort 方法可能會也可能不會拋出 UnsupportedOperationException。
此類是 Java 集合框架的成員。
字段摘要
| 修飾符和類型 | 字段 | 描述 |
|---|---|---|
| static List | EMPTY_LIST | 空列表(不可變)。 |
| static Map | EMPTY_MAP | 空map(不可變)。 |
| static Set | EMPTY_SET | 空集(不可變)。 |
方法總結
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| static |
addAll(Collection super T> c, T... elements) | 將所有指定元素添加到指定集合。 |
| static |
asLifoQueue(Deque |
將 Deque 的視圖返回為后進先出 (Lifo) 隊列。 |
| static |
binarySearch(List extends Comparable super T>> list, T key) | 使用二分搜索算法在指定列表中搜索指定對象。 |
| static |
binarySearch(List extends T> list, T key, Comparator super T> c) | 使用二分搜索算法在指定列表中搜索指定對象。 |
| static |
checkedCollection(Collection |
返回指定集合的動態(tài)類型安全視圖。 |
| static |
checkedList(List |
返回指定列表的動態(tài)類型安全視圖。 |
| static |
checkedMap(Map |
返回指定映射的動態(tài)類型安全視圖。 |
| static |
checkedNavigableMap(NavigableMap |
返回指定可導航地圖的動態(tài)類型安全視圖。 |
| static |
checkedNavigableSet(NavigableSet |
返回指定導航集的動態(tài)類型安全視圖。 |
| static |
checkedQueue(Queue |
返回指定隊列的動態(tài)類型安全視圖。 |
| static |
checkedSet(Set |
返回指定集合的動態(tài)類型安全視圖。 |
| static |
checkedSortedMap(SortedMap |
返回指定排序映射的動態(tài)類型安全視圖。 |
| static |
checkedSortedSet(SortedSet |
返回指定排序集的動態(tài)類型安全視圖。 |
| static |
copy(List super T> dest, List extends T> src) | 將一個列表中的所有元素復制到另一個列表中。 |
| static boolean | disjoint(Collection> c1, Collection> c2) | 如果兩個指定的集合沒有共同的元素,則返回 true。 |
| static |
emptyEnumeration() | 返回一個沒有元素的枚舉。 |
| static |
emptyIterator() | 返回一個沒有元素的迭代器。 |
| static |
emptyList() | 返回一個空列表(不可變)。 |
| static |
emptyListIterator() | 返回一個沒有元素的列表迭代器。 |
| static |
emptyMap() | 返回一個空映射(不可變)。 |
| static |
emptyNavigableMap() | 返回一個空的可導航map(不可變)。 |
| static |
emptyNavigableSet() | 返回一個空的可導航集(不可變)。 |
| static |
emptySet() | 返回一個空集(不可變)。 |
| static |
emptySortedMap() | 返回一個空的排序映射(不可變)。 |
| static |
emptySortedSet() | 返回一個空的排序集(不可變)。 |
| static |
enumeration(Collection |
返回指定集合的枚舉。 |
| static |
fill(List super T> list, T obj) | 用指定元素替換指定列表的所有元素。 |
| static int | frequency(Collection> c, Object o) | 返回指定集合中等于指定對象的元素數(shù)。 |
| static int | indexOfSubList(List> source, List> target) | 返回指定源列表中指定目標列表第一次出現(xiàn)的起始位置,如果沒有出現(xiàn),則返回 -1。 |
| static int | lastIndexOfSubList(List> source, List> target) | 返回指定目標列表在指定源列表中最后一次出現(xiàn)的起始位置,如果沒有出現(xiàn),則返回 -1。 |
| static |
list(Enumeration |
按枚舉返回的順序返回一個數(shù)組列表,其中包含指定枚舉返回的元素。 |
| static |
max(Collection extends T> coll) | 根據(jù)元素的自然順序返回給定集合的最大元素。 |
| static |
max(Collection extends T> coll, Comparator super T> comp) | 根據(jù)指定比較器誘導的順序返回給定集合的最大元素。 |
| static |
min(Collection extends T> coll) | 根據(jù)元素的自然順序返回給定集合的最小元素。 |
| static |
min(Collection extends T> coll, Comparator super T> comp) | 根據(jù)指定比較器誘導的順序返回給定集合的最小元素。 |
| static |
nCopies(int n, T o) | 返回由指定對象的 n 個副本組成的不可變列表。 |
| static |
newSetFromMap(MapE,Boolean map) | 返回由指定映射支持的集合。 |
| static |
replaceAll(List |
將列表中一個指定值的所有出現(xiàn)替換為另一個。 |
| static void | reverse(List> list) | 反轉指定列表中元素的順序。 |
| static |
reverseOrder() | 返回一個比較器,它對實現(xiàn) Comparable 接口的對象集合施加自然順序的逆向。 |
| static |
reverseOrder(Comparator |
返回一個比較器,它強制指定比較器的反向排序。 |
| static void | rotate(List> list, int distance) | 將指定列表中的元素旋轉指定距離。 |
| static void | shuffle(List> list) | 使用默認隨機源隨機排列指定列表。 |
| static void | shuffle(List> list, Random rnd) | 使用指定的隨機源隨機排列指定的列表。 |
| static |
singleton(T o) | 返回一個只包含指定對象的不可變集合。 |
| static |
singletonList(T o) | 返回僅包含指定對象的不可變列表。 |
| static |
singletonMap(K key, V value) | 返回一個不可變映射,僅將指定的鍵映射到指定的值。 |
| static |
sort(List |
根據(jù)其元素的 Comparable 對指定列表進行升序排序。 |
| static |
sort(List |
根據(jù)指定比較器產(chǎn)生的順序對指定列表進行排序。 |
| static void | swap(List> list, int i, int j) | 交換指定列表中指定位置的元素。 |
| static |
synchronizedCollection(Collection |
返回由指定集合支持的同步(線程安全)集合。 |
| static |
synchronizedList(List |
返回由指定列表支持的同步(線程安全)列表。 |
| static |
synchronizedMap(Map |
返回由指定映射支持的同步(線程安全)映射。 |
| static |
synchronizedNavigableMap(NavigableMap |
返回由指定可導航地圖支持的同步(線程安全)可導航地圖。 |
| static |
synchronizedNavigableSet(NavigableSet |
返回由指定導航集支持的同步(線程安全)導航集。 |
| static |
synchronizedSet(Set |
返回由指定集支持的同步(線程安全)集。 |
| static |
synchronizedSortedMap(SortedMap |
返回由指定排序映射支持的同步(線程安全)排序映射。 |
| static |
synchronizedSortedSet(SortedSet |
返回由指定排序集支持的同步(線程安全)排序集。 |
| static |
unmodifiableCollection(Collection extends T> c) | 返回指定集合的不可修改視圖。 |
| static |
unmodifiableList(List extends T> list) | 返回指定列表的不可修改視圖。 |
| static |
unmodifiableMap(Map extends K,? extends V> m) | 返回指定地圖的不可修改視圖。 |
| static |
unmodifiableNavigableMap(NavigableMap |
返回指定導航地圖的不可修改視圖。 |
| static |
unmodifiableNavigableSet(NavigableSet |
返回指定導航集的不可修改視圖。 |
| static |
unmodifiableSet(Set extends T> s) | 返回指定集合的不可修改視圖。 |
| static |
unmodifiableSortedMap(SortedMap |
返回指定排序地圖的不可修改視圖。 |
| static |
unmodifiableSortedSet(SortedSet |
返回指定排序集的不可修改視圖。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段詳細信息
EMPTY_LIST
public static final List EMPTY_LIST
空列表(不可變)。 這個列表是可序列化的。
EMPTY_MAP
public static final Map EMPTY_MAP
空地圖(不可變)。 該地圖是可序列化的。
EMPTY_SET
public static final Set EMPTY_SET
空集(不可變)。 這個集合是可序列化的。
方法詳情
sort
public static
根據(jù)其元素的 Comparable 對指定列表進行升序排序。 列表中的所有元素都必須實現(xiàn) Comparable 接口。 此外,列表中的所有元素必須相互可比較(即,e1.compareTo(e2) 不得為列表中的任何元素 e1 和 e2 拋出 ClassCastException)。
這種排序保證是穩(wěn)定的:相同的元素不會因為排序而重新排序。
指定的列表必須是可修改的,但不必調整大小。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要排序的列表。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果列表包含不可相互比較的元素(例如,字符串和整數(shù))。 |
| UnsupportedOperationException | 如果指定列表的列表迭代器不支持設置操作。 |
| IllegalArgumentException | (可選)如果實現(xiàn)檢測到列表元素的自然順序被發(fā)現(xiàn)違反了 Comparable 合約 |
sort
public static
根據(jù)指定比較器產(chǎn)生的順序對指定列表進行排序。 列表中的所有元素必須使用指定的比較器進行相互比較(即,c.compare(e1, e2) 不得為列表中的任何元素 e1 和 e2 拋出 ClassCastException)。
這種排序保證是穩(wěn)定的:相同的元素不會因為排序而重新排序。
指定的列表必須是可修改的,但不必調整大小。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要排序的列表。 |
| c | 比較器來確定列表的順序。 空值表示應使用元素的自然順序。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果列表包含使用指定比較器不能相互比較的元素。 |
| UnsupportedOperationException | 如果指定列表的列表迭代器不支持設置操作。 |
| IllegalArgumentException | (可選)如果發(fā)現(xiàn)比較器違反了比較器合同 |
binarySearch
public static
使用二分搜索算法在指定列表中搜索指定對象。 在進行此調用之前,必須根據(jù)其元素的 Comparable 對列表進行升序排序(如通過 sort(java.util.List) 方法)。 如果未排序,則結果未定義。 如果列表包含多個等于指定對象的元素,則無法保證會找到哪一個。
此方法在 log(n) 時間內(nèi)針對“隨機訪問”列表(提供接近恒定時間的位置訪問)運行。 如果指定的列表沒有實現(xiàn) RandomAccess 接口并且很大,則此方法將執(zhí)行基于迭代器的二進制搜索,執(zhí)行 O(n) 鏈接遍歷和 O(log n) 元素比較。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要搜索的列表。 |
| key | 要搜索的鍵。 |
返回:
搜索關鍵字的索引,如果它包含在列表中; 否則,(-(插入點)- 1)。 插入點定義為將鍵插入列表的點:第一個元素的索引大于鍵,如果列表中的所有元素都小于指定的鍵,則為 list.size()。 請注意,這保證了當且僅當找到鍵時,返回值將 >= 0。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果列表包含不可相互比較的元素(例如,字符串和整數(shù)),或者搜索鍵與列表的元素不可相互比較。 |
binarySearch
public static
使用二分搜索算法在指定列表中搜索指定對象。 在進行此調用之前,必須根據(jù)指定的比較器(如通過 sort(List, Comparator) 方法)對列表進行升序排序。 如果未排序,則結果未定義。 如果列表包含多個等于指定對象的元素,則無法保證會找到哪一個。
此方法在 log(n) 時間內(nèi)針對“隨機訪問”列表(提供接近恒定時間的位置訪問)運行。 如果指定的列表沒有實現(xiàn) RandomAccess 接口并且很大,則此方法將執(zhí)行基于迭代器的二進制搜索,執(zhí)行 O(n) 鏈接遍歷和 O(log n) 元素比較。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要搜索的列表。 |
| key | 要搜索的鍵。 |
| c | 排序列表的比較器。 空值表示應該使用元素的 Comparable。 |
返回:
搜索關鍵字的索引,如果它包含在列表中; 否則,(-(插入點)- 1)。 插入點定義為將鍵插入列表的點:第一個元素的索引大于鍵,如果列表中的所有元素都小于指定的鍵,則為 list.size()。 請注意,這保證了當且僅當找到鍵時,返回值將 >= 0。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果列表包含使用指定比較器不能相互比較的元素,或者搜索鍵與使用此比較器的列表元素不能相互比較。 |
reverse
public static void reverse(List> list)
反轉指定列表中元素的順序。
此方法以線性時間運行。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要反轉其元素的列表。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設置操作。 |
shuffle
public static void shuffle(List> list)
使用默認隨機源隨機排列指定列表。所有排列都以大致相等的可能性發(fā)生。
在前面的描述中使用了“大約”對沖,因為默認隨機源只是大約獨立選擇位的無偏源。如果它是隨機選擇的比特的完美來源,那么該算法將選擇具有完美一致性的排列。
此實現(xiàn)從最后一個元素到第二個元素向后遍歷列表,反復將隨機選擇的元素交換到“當前位置”。元素是從列表中從第一個元素到當前位置(含)的部分中隨機選擇的。
此方法以線性時間運行。如果指定列表沒有實現(xiàn) RandomAccess 接口并且很大,則此實現(xiàn)在打亂之前將指定列表轉儲到數(shù)組中,并將打亂后的數(shù)組轉儲回列表中。這避免了因將“順序訪問”列表改組而導致的二次行為。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要洗牌的列表。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設置操作。 |
shuffle
public static void shuffle(List> list, Random rnd)
使用指定的隨機源隨機排列指定的列表。 假設隨機性的來源是公平的,所有排列都以相同的可能性發(fā)生。
此實現(xiàn)從最后一個元素到第二個元素向后遍歷列表,反復將隨機選擇的元素交換到“當前位置”。 元素是從列表中從第一個元素到當前位置(含)的部分中隨機選擇的。
此方法以線性時間運行。 如果指定列表沒有實現(xiàn) RandomAccess 接口并且很大,則此實現(xiàn)在打亂之前將指定列表轉儲到數(shù)組中,并將打亂后的數(shù)組轉儲回列表中。 這避免了因將“順序訪問”列表改組而導致的二次行為。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要洗牌的列表。 |
| rnd | 用于隨機排列列表的隨機源。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設置操作。 |
swap
public static void swap(List> list, int i, int j)
交換指定列表中指定位置的元素。 (如果指定的位置相等,則調用此方法會使列表保持不變。)
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 交換元素的列表。 |
| i | 要交換的一個元素的索引。 |
| j | 要交換的另一個元素的索引。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果 i 或 j 超出范圍 (i < 0 || i >= list.size() || j < 0 || j >= list.size())。 |
fill
public static
用指定元素替換指定列表的所有元素。
此方法以線性時間運行。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要填充指定元素的列表。 |
| obj | 用于填充指定列表的元素。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設置操作。 |
copy
public static
將一個列表中的所有元素復制到另一個列表中。 操作后,目標列表中每個復制元素的索引將與其在源列表中的索引相同。 目標列表必須至少與源列表一樣長。 如果它更長,則目標列表中的其余元素不受影響。
此方法以線性時間運行。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| dest | 目的地列表。 |
| src | 源列表。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IndexOutOfBoundsException | 如果目標列表太小而無法包含整個源列表。 |
| UnsupportedOperationException | 如果目標列表的列表迭代器不支持設置操作。 |
min
public static
根據(jù)元素的自然順序返回給定集合的最小元素。 集合中的所有元素都必須實現(xiàn) Comparable 接口。 此外,集合中的所有元素必須相互可比較(即,e1.compareTo(e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個集合,因此它需要與集合大小成正比的時間。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| coll | 要確定其最小元素的集合。 |
返回:
給定集合的最小元素,根據(jù)其元素的自然順序。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果集合包含不可相互比較的元素(例如,字符串和整數(shù))。 |
| NoSuchElementException | 如果集合為空。 |
min
public static
根據(jù)指定比較器誘導的順序返回給定集合的最小元素。 集合中的所有元素必須通過指定的比較器相互比較(即,comp.compare(e1, e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個集合,因此它需要與集合大小成正比的時間。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| coll | 要確定其最小元素的集合。 |
| comp | 用于確定最小元素的比較器。 空值表示應使用元素的自然順序。 |
返回:
根據(jù)指定的比較器,給定集合的最小元素。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果集合包含使用指定比較器不能相互比較的元素。 |
| NoSuchElementException | 如果集合為空。 |
max
public static
根據(jù)元素的自然順序返回給定集合的最大元素。 集合中的所有元素都必須實現(xiàn) Comparable 接口。 此外,集合中的所有元素必須相互可比較(即,e1.compareTo(e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個集合,因此它需要與集合大小成正比的時間。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| coll | 要確定其最大元素的集合。 |
返回:
給定集合的最大元素,根據(jù)其元素的自然順序。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果集合包含不可相互比較的元素(例如,字符串和整數(shù))。 |
| NoSuchElementException | 如果集合為空。 |
max
public static
根據(jù)指定比較器誘導的順序返回給定集合的最大元素。 集合中的所有元素必須通過指定的比較器相互比較(即,comp.compare(e1, e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個集合,因此它需要與集合大小成正比的時間。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| coll | 要確定其最大元素的集合。 |
| comp | 用于確定最大元素的比較器。 空值表示應使用元素的自然順序。 |
返回:
根據(jù)指定的比較器,給定集合的最大元素。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| ClassCastException | 如果集合包含使用指定比較器不能相互比較的元素。 |
| NoSuchElementException | 如果集合為空。 |
rotate
public static void rotate(List> list, int distance)
將指定列表中的元素旋轉指定距離。 調用此方法后,索引 i 處的元素將是先前位于索引 (i - 距離) mod list.size() 處的元素,對于 i 的所有值介于 0 和 list.size()-1 之間,包括 0 和 list.size()-1。 (此方法對列表的大小沒有影響。)
例如,假設列表包含 [t, a, n, k, s]。 調用 Collections.rotate(list, 1)(或 Collections.rotate(list, -4))后,列表將包含 [s, t, a, n, k]。
請注意,此方法可以有效地應用于子列表,以在列表中移動一個或多個元素,同時保留剩余元素的順序。 例如,以下習慣用法將索引 j 處的元素向前移動到位置 k(必須大于或等于 j):
Collections.rotate(list.subList(j, k+1), -1);
為了具體說明,假設列表包含 [a, b, c, d, e]。 要將索引 1 (b) 處的元素向前移動兩個位置,請執(zhí)行以下調用:
Collections.rotate(l.subList(1, 4), -1);
結果列表是 [a, c, d, b, e]。
要向前移動多個元素,請增加旋轉距離的絕對值。要向后移動元素,請使用正偏移距離。
如果指定的列表很小或實現(xiàn)了 RandomAccess 接口,則此實現(xiàn)將第一個元素交換到它應該去的位置,然后重復地將被替換的元素交換到它應該去的位置,直到一個被替換的元素被交換到第一個元素。如有必要,對第二個和后續(xù)元素重復該過程,直到旋轉完成。如果指定的列表很大并且沒有實現(xiàn) RandomAccess 接口,則此實現(xiàn)將列表分成兩個圍繞 index -distance mod 大小的子列表視圖。然后在每個子列表視圖上調用 reverse(java.util.List) 方法,最后在整個列表上調用它。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要輪換的列表。 |
| distance | 旋轉列表的距離。 這個值沒有限制; 它可能為零、負數(shù)或大于 list.size()。 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設置操作。 |
replaceAll
public static
將列表中一個指定值的所有出現(xiàn)替換為另一個。 更正式地說,用 newVal 替換列表中的每個元素 e,使得 (oldVal==null ? e==null : oldVal.equals(e))。 (此方法對列表的大小沒有影響。)
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要發(fā)生替換的列表。 |
| oldVal | 要替換的舊值。 |
| newVal | oldVal 將被替換的新值。 |
返回:
如果 list 包含一個或多個元素 e 滿足 (oldVal==null ? e==null : oldVal.equals(e)),則為 true。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設置操作。 |
indexOfSubList
public static int indexOfSubList(List> source, List> target)
返回指定源列表中指定目標列表第一次出現(xiàn)的起始位置,如果沒有出現(xiàn),則返回 -1。 更正式地說,返回滿足 source.subList(i, i+target.size()).equals(target) 的最低索引 i,如果沒有這樣的索引,則返回 -1。 (如果 target.size() > source.size() 則返回 -1)
此實現(xiàn)使用掃描源列表的“brute force”技術,依次在每個位置尋找與目標的匹配。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| source | 在其中搜索第一次出現(xiàn)的目標的列表。 |
| target | 要搜索的列表作為源的子列表。 |
返回:
指定目標列表在指定源列表中第一次出現(xiàn)的起始位置,如果沒有出現(xiàn),則為 -1。
lastIndexOfSubList
public static int lastIndexOfSubList(List> source, List> target)
返回指定目標列表在指定源列表中最后一次出現(xiàn)的起始位置,如果沒有出現(xiàn),則返回 -1。 更正式地說,返回最高索引 i 使得 source.subList(i, i+target.size()).equals(target),如果沒有這樣的索引,則返回 -1。 (如果 target.size() > source.size() 則返回 -1)
該實現(xiàn)使用“brute force”技術迭代源列表,依次在每個位置尋找與目標的匹配。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| source | 要在其中搜索最后一次出現(xiàn)的目標的列表。 |
| target | 要搜索的列表作為源的子列表。 |
返回:
指定源列表中指定目標列表的最后一次出現(xiàn)的起始位置,如果沒有這樣的出現(xiàn),則為 -1。
unmodifiableCollection
public static
返回指定集合的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部集合的“只讀”訪問權限。 對返回集合的查詢操作“通讀”到指定集合,并嘗試修改返回的集合,無論是直接還是通過其迭代器,都會導致 UnsupportedOperationException。
返回的集合不會將 hashCode 和 equals 操作傳遞給支持集合,而是依賴于 Object 的 equals 和 hashCode 方法。 在支持集合是集合或列表的情況下,這對于保留這些操作的合同是必要的。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 要為其返回不可修改視圖的集合。 |
返回:
指定集合的不可修改視圖。
unmodifiableSet
public static
返回指定集合的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部集的“只讀”訪問權限。 對返回集“通讀”到指定集的查詢操作,并嘗試修改返回集,無論是直接還是通過其迭代器,都會導致 UnsupportedOperationException。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 要為其返回不可修改視圖的集合。 |
返回:
指定集合的不可修改視圖。
unmodifiableSortedSet
public static
返回指定排序集的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部排序集的“只讀”訪問權限。 對返回的排序集的查詢操作“通讀”到指定的排序集。 嘗試修改返回的排序集,無論是直接的、通過它的迭代器,還是通過它的 subSet、headSet 或 tailSet 視圖,都會導致 UnsupportedOperationException。
如果指定的排序集是可序列化的,則返回的排序集將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 要為其返回不可修改視圖的排序集。 |
返回:
指定排序集的不可修改視圖。
unmodifiableNavigableSet
public static
返回指定導航集的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部可導航集的“只讀”訪問權限。 對返回的導航集的查詢操作“通讀”到指定的導航集。 嘗試修改返回的可導航集,無論是直接、通過其迭代器,還是通過其子集、頭集或尾集視圖,都會導致 UnsupportedOperationException。
如果指定的導航集是可序列化的,則返回的導航集將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 要為其返回不可修改視圖的可導航集 |
返回:
指定導航集的不可修改視圖
unmodifiableList
public static
返回指定列表的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部列表的“只讀”訪問權限。 對返回列表的查詢操作“通讀”到指定列表,并嘗試修改返回的列表,無論是直接還是通過其迭代器,都會導致 UnsupportedOperationException。
如果指定的列表是可序列化的,則返回的列表將是可序列化的。 同樣,如果指定的列表執(zhí)行,則返回的列表將實現(xiàn) RandomAccess。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要為其返回不可修改視圖的列表。 |
返回:
指定列表的不可修改視圖。
unmodifiableMap
public static
返回指定地圖的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部地圖的“只讀”訪問權限。 對返回的映射“通讀”到指定映射的查詢操作,并嘗試修改返回的映射,無論是直接還是通過其集合視圖,都會導致 UnsupportedOperationException。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| K | 映射鍵的類 |
| V | 地圖值的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| m | 要為其返回不可修改視圖的map。 |
返回:
指定map的不可修改視圖。
unmodifiableSortedMap
public static
返回指定排序地圖的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部排序地圖的“只讀”訪問權限。 對返回的有序映射的查詢操作“通讀”到指定的有序映射。 嘗試修改返回的排序地圖,無論是直接的、通過它的集合視圖,還是通過它的 subMap、headMap 或 tailMap 視圖,都會導致 UnsupportedOperationException。
如果指定的排序映射是可序列化的,則返回的排序映射將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| K | 映射鍵的類 |
| V | map值的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| m | 要為其返回不可修改視圖的排序映射。 |
返回:
指定排序映射的不可修改視圖。
unmodifiableNavigableMap
public static
返回指定導航地圖的不可修改視圖。 此方法允許模塊為用戶提供對內(nèi)部可導航地圖的“只讀”訪問權限。 對返回的導航地圖的查詢操作“通讀”到指定的導航地圖。 嘗試修改返回的可導航地圖,無論是直接通過其集合視圖,還是通過其 subMap、headMap 或 tailMap 視圖,都會導致 UnsupportedOperationException。
如果指定的導航地圖是可序列化的,則返回的導航地圖將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| K | 映射鍵的類 |
| V | map值的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| m | 要為其返回不可修改視圖的可導航map |
返回:
指定導航map的不可修改視圖
synchronizedCollection
public static
返回由指定集合支持的同步(線程安全)集合。 為了保證串行訪問,對后備集合的所有訪問都是通過返回的集合完成的,這一點至關重要。
當通過 Iterator、Spliterator 或 Stream 遍歷返回的集合時,用戶必須手動同步它:
Collection c = Collections.synchronizedCollection(myCollection);
...
synchronized (c) {
Iterator i = c.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會導致不確定的行為。
返回的集合不會將 hashCode 和 equals 操作傳遞給支持集合,而是依賴于 Object 的 equals 和 hashCode 方法。 在支持集合是集合或列表的情況下,這對于保留這些操作的合同是必要的。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 要“wrapped”在同步集合中的集合。 |
返回:
指定集合的同步視圖。
synchronizedSet
public static
返回由指定集支持的同步(線程安全)集。 為了保證串行訪問,對支持集的所有訪問都是通過返回集完成的,這一點至關重要。
當?shù)鼤r,用戶必須在返回的集合上手動同步:
Set s = Collections.synchronizedSet(new HashSet());
...
synchronized (s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會導致不確定的行為。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 要“wrapped”在同步集中的集合。 |
返回:
指定集合的同步視圖。
synchronizedSortedSet
public static
返回由指定排序集支持的同步(線程安全)排序集。 為了保證串行訪問,對后備排序集的所有訪問都是通過返回的排序集(或其視圖)完成的,這一點至關重要。
當?shù)祷氐呐判蚣蚱淙魏巫蛹?、頭集或尾集視圖時,用戶必須手動同步返回的排序集。
SortedSet s = Collections.synchronizedSortedSet(new TreeSet());
...
synchronized (s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
或者:
SortedSet s = Collections.synchronizedSortedSet(new TreeSet());
SortedSet s2 = s.headSet(foo);
...
synchronized (s) { // Note: s, not s2!!!
Iterator i = s2.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會導致不確定的行為。
如果指定的排序集是可序列化的,則返回的排序集將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 將排序集“wrapped”在同步排序集中。 |
返回:
指定排序集的同步視圖。
synchronizedNavigableSet
public static
返回由指定導航集支持的同步(線程安全)導航集。 為了保證串行訪問,對支持導航集的所有訪問都是通過返回的導航集(或其視圖)完成的,這一點至關重要。
當?shù)祷氐目蓪Ш郊蚱淙魏巫蛹?、頭集或尾集視圖時,用戶必須手動同步返回的可導航集。
NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
...
synchronized (s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
或者:
NavigableSet s = Collections.synchronizedNavigableSet(new TreeSet());
NavigableSet s2 = s.headSet(foo, true);
...
synchronized (s) { // Note: s, not s2!!!
Iterator i = s2.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會導致不確定的行為。
如果指定的導航集是可序列化的,則返回的導航集將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 集合中對象的類別 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| s | 將可導航集“wrapped”在同步可導航集中 |
返回:
指定導航集的同步視圖
synchronizedList
public static
返回由指定列表支持的同步(線程安全)列表。 為了保證串行訪問,對后備列表的所有訪問都通過返回的列表完成是至關重要的。
用戶在迭代返回的列表時必須手動同步它:
List list = Collections.synchronizedList(new ArrayList());
...
synchronized (list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會導致不確定的行為。
如果指定的列表是可序列化的,則返回的列表將是可序列化的。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 列表中對象的類 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| list | 要“wrapped”在同步列表中的列表。 |
返回:
指定列表的同步視圖。
synchronizedMap
public static
返回由指定映射支持的同步(線程安全)映射。 為了保證串行訪問,對支持映射的所有訪問都是通過返回的映射完成的,這一點至關重要。
當?shù)淙魏渭弦晥D時,用戶必須在返回的地圖上手動同步:
Map m = Collections.synchronizedMap(new HashMap());
...
Set s = m.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not s!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會導致不確定的行為。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
類型參數(shù):
| 類型參數(shù)名 當前題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSCollections 分享鏈接:http://m.5511xx.com/article/coeohds.html |
|---|


咨詢
建站咨詢
