W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.util.Collections
public class Collections
extends Object
此類僅由對(duì)集合進(jìn)行操作或返回集合的靜態(tài)方法組成。 它包含對(duì)集合進(jìn)行操作的多態(tài)算法,“包裝器”,它返回由指定集合支持的新集合,以及其他一些零碎的東西。
如果提供給它們的集合或類對(duì)象為空,則此類的方法都會(huì)拋出 NullPointerException。
此類中包含的多態(tài)算法的文檔通常包括對(duì)實(shí)現(xiàn)的簡(jiǎn)要描述。此類描述應(yīng)被視為實(shí)現(xiàn)說(shuō)明,而不是規(guī)范的一部分。只要遵守規(guī)范本身,實(shí)現(xiàn)者應(yīng)該可以隨意替換其他算法。 (例如,sort 使用的算法不必是歸并排序,但它必須是穩(wěn)定的。)
此類中包含的“破壞性”算法,即修改它們操作的集合的算法,被指定為在集合不支持適當(dāng)?shù)耐蛔冊(cè)Z(yǔ)(例如 set 方法)時(shí)拋出 UnsupportedOperationException。如果調(diào)用對(duì)集合沒(méi)有影響,這些算法可能會(huì)(但不是必須)拋出此異常。例如,在已排序的不可修改列表上調(diào)用 sort 方法可能會(huì)也可能不會(huì)拋出 UnsupportedOperationException。
此類是 Java 集合框架的成員。
修飾符和類型 | 字段 | 描述 |
---|---|---|
static List | EMPTY_LIST | 空列表(不可變)。 |
static Map | EMPTY_MAP | 空map(不可變)。 |
static Set | EMPTY_SET | 空集(不可變)。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
static <T> boolean | addAll(Collection<? super T> c, T... elements) | 將所有指定元素添加到指定集合。 |
static <T> Queue<T> | asLifoQueue(Deque<T> deque) | 將 Deque 的視圖返回為后進(jìn)先出 (Lifo) 隊(duì)列。 |
static <T> int | binarySearch(List<? extends Comparable<? super T>> list, T key) | 使用二分搜索算法在指定列表中搜索指定對(duì)象。 |
static <T> int | binarySearch(List<? extends T> list, T key, Comparator<? super T> c) | 使用二分搜索算法在指定列表中搜索指定對(duì)象。 |
static <E> Collection<E> | checkedCollection(Collection<E> c, Class<E> type) | 返回指定集合的動(dòng)態(tài)類型安全視圖。 |
static <E> List<E> | checkedList(List<E> list, Class<E> type) | 返回指定列表的動(dòng)態(tài)類型安全視圖。 |
static <K,V> Map<K,V> | checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType) | 返回指定映射的動(dòng)態(tài)類型安全視圖。 |
static <K,V> NavigableMap<K,V> | checkedNavigableMap(NavigableMap<K,V> m, Class<K> keyType, Class<V> valueType) | 返回指定可導(dǎo)航地圖的動(dòng)態(tài)類型安全視圖。 |
static <E> NavigableSet<E> | checkedNavigableSet(NavigableSet<E> s, Class<E> type) | 返回指定導(dǎo)航集的動(dòng)態(tài)類型安全視圖。 |
static <E> Queue<E> | checkedQueue(Queue<E> queue, Class<E> type) | 返回指定隊(duì)列的動(dòng)態(tài)類型安全視圖。 |
static <E> Set<E> | checkedSet(Set<E> s, Class<E> type) | 返回指定集合的動(dòng)態(tài)類型安全視圖。 |
static <K,V> SortedMap<K,V> | checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType) | 返回指定排序映射的動(dòng)態(tài)類型安全視圖。 |
static <E> SortedSet<E> | checkedSortedSet(SortedSet<E> s, Class<E> type) | 返回指定排序集的動(dòng)態(tài)類型安全視圖。 |
static <T> void | copy(List<? super T> dest, List<? extends T> src) | 將一個(gè)列表中的所有元素復(fù)制到另一個(gè)列表中。 |
static boolean | disjoint(Collection<?> c1, Collection<?> c2) | 如果兩個(gè)指定的集合沒(méi)有共同的元素,則返回 true。 |
static <T> Enumeration<T> | emptyEnumeration() | 返回一個(gè)沒(méi)有元素的枚舉。 |
static <T> Iterator<T> | emptyIterator() | 返回一個(gè)沒(méi)有元素的迭代器。 |
static <T> List<T> | emptyList() | 返回一個(gè)空列表(不可變)。 |
static <T> ListIterator<T> | emptyListIterator() | 返回一個(gè)沒(méi)有元素的列表迭代器。 |
static <K,V> Map<K,V> | emptyMap() | 返回一個(gè)空映射(不可變)。 |
static <K,V> NavigableMap<K,V> | emptyNavigableMap() | 返回一個(gè)空的可導(dǎo)航map(不可變)。 |
static <E> NavigableSet<E> | emptyNavigableSet() | 返回一個(gè)空的可導(dǎo)航集(不可變)。 |
static <T> Set<T> | emptySet() | 返回一個(gè)空集(不可變)。 |
static <K,V> SortedMap<K,V> | emptySortedMap() | 返回一個(gè)空的排序映射(不可變)。 |
static <E> SortedSet<E> | emptySortedSet() | 返回一個(gè)空的排序集(不可變)。 |
static <T> Enumeration<T> | enumeration(Collection<T> c) | 返回指定集合的枚舉。 |
static <T> void | fill(List<? super T> list, T obj) | 用指定元素替換指定列表的所有元素。 |
static int | frequency(Collection<?> c, Object o) | 返回指定集合中等于指定對(duì)象的元素?cái)?shù)。 |
static int | indexOfSubList(List<?> source, List<?> target) | 返回指定源列表中指定目標(biāo)列表第一次出現(xiàn)的起始位置,如果沒(méi)有出現(xiàn),則返回 -1。 |
static int | lastIndexOfSubList(List<?> source, List<?> target) | 返回指定目標(biāo)列表在指定源列表中最后一次出現(xiàn)的起始位置,如果沒(méi)有出現(xiàn),則返回 -1。 |
static <T> ArrayList<T> | list(Enumeration<T> e) | 按枚舉返回的順序返回一個(gè)數(shù)組列表,其中包含指定枚舉返回的元素。 |
static <T extends Object & Comparable<? super T>>T | max(Collection<? extends T> coll) | 根據(jù)元素的自然順序返回給定集合的最大元素。 |
static <T> T | max(Collection<? extends T> coll, Comparator<? super T> comp) | 根據(jù)指定比較器誘導(dǎo)的順序返回給定集合的最大元素。 |
static <T extends Object & Comparable<? super T>>T | min(Collection<? extends T> coll) | 根據(jù)元素的自然順序返回給定集合的最小元素。 |
static <T> T | min(Collection<? extends T> coll, Comparator<? super T> comp) | 根據(jù)指定比較器誘導(dǎo)的順序返回給定集合的最小元素。 |
static <T> List<T> | nCopies(int n, T o) | 返回由指定對(duì)象的 n 個(gè)副本組成的不可變列表。 |
static <E> Set<E> | newSetFromMap(MapE,Boolean map) | 返回由指定映射支持的集合。 |
static <T> boolean | replaceAll(List<T> list, T oldVal, T newVal) | 將列表中一個(gè)指定值的所有出現(xiàn)替換為另一個(gè)。 |
static void | reverse(List<?> list) | 反轉(zhuǎn)指定列表中元素的順序。 |
static <T> Comparator<T> | reverseOrder() | 返回一個(gè)比較器,它對(duì)實(shí)現(xiàn) Comparable 接口的對(duì)象集合施加自然順序的逆向。 |
static <T> Comparator<T> | reverseOrder(Comparator<T> cmp) | 返回一個(gè)比較器,它強(qiáng)制指定比較器的反向排序。 |
static void | rotate(List<?> list, int distance) | 將指定列表中的元素旋轉(zhuǎn)指定距離。 |
static void | shuffle(List<?> list) | 使用默認(rèn)隨機(jī)源隨機(jī)排列指定列表。 |
static void | shuffle(List<?> list, Random rnd) | 使用指定的隨機(jī)源隨機(jī)排列指定的列表。 |
static <T> Set<T> | singleton(T o) | 返回一個(gè)只包含指定對(duì)象的不可變集合。 |
static <T> List<T> | singletonList(T o) | 返回僅包含指定對(duì)象的不可變列表。 |
static <K,V> Map<K,V> | singletonMap(K key, V value) | 返回一個(gè)不可變映射,僅將指定的鍵映射到指定的值。 |
static <T extends Comparable<? super T>>void | sort(List<T> list) | 根據(jù)其元素的 Comparable 對(duì)指定列表進(jìn)行升序排序。 |
static <T> void | sort(List<T> list, Comparator<? super T> c) | 根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M(jìn)行排序。 |
static void | swap(List<?> list, int i, int j) | 交換指定列表中指定位置的元素。 |
static <T> Collection<T> | synchronizedCollection(Collection<T> c) | 返回由指定集合支持的同步(線程安全)集合。 |
static <T> List<T> | synchronizedList(List<T> list) | 返回由指定列表支持的同步(線程安全)列表。 |
static <K,V> Map<K,V> | synchronizedMap(Map<K,V> m) | 返回由指定映射支持的同步(線程安全)映射。 |
static <K,V> NavigableMap<K,V> | synchronizedNavigableMap(NavigableMap<K,V> m) | 返回由指定可導(dǎo)航地圖支持的同步(線程安全)可導(dǎo)航地圖。 |
static <T> NavigableSet<T> | synchronizedNavigableSet(NavigableSet<T> s) | 返回由指定導(dǎo)航集支持的同步(線程安全)導(dǎo)航集。 |
static <T> Set<T> | synchronizedSet(Set<T> s) | 返回由指定集支持的同步(線程安全)集。 |
static <K,V> SortedMap<K,V> | synchronizedSortedMap(SortedMap<K,V> m) | 返回由指定排序映射支持的同步(線程安全)排序映射。 |
static <T> SortedSet<T> | synchronizedSortedSet(SortedSet<T> s) | 返回由指定排序集支持的同步(線程安全)排序集。 |
static <T> Collection<T> | unmodifiableCollection(Collection<? extends T> c) | 返回指定集合的不可修改視圖。 |
static <T> List<T> | unmodifiableList(List<? extends T> list) | 返回指定列表的不可修改視圖。 |
static <K,V> Map<K,V> | unmodifiableMap(Map<? extends K,? extends V> m) | 返回指定地圖的不可修改視圖。 |
static <K,V> NavigableMap<K,V> | unmodifiableNavigableMap(NavigableMap<K,? extends V> m) | 返回指定導(dǎo)航地圖的不可修改視圖。 |
static <T> NavigableSet<T> | unmodifiableNavigableSet(NavigableSet<T> s) | 返回指定導(dǎo)航集的不可修改視圖。 |
static <T> Set<T> | unmodifiableSet(Set<? extends T> s) | 返回指定集合的不可修改視圖。 |
static <K,V> SortedMap<K,V> | unmodifiableSortedMap(SortedMap<K,? extends V> m) | 返回指定排序地圖的不可修改視圖。 |
static <T> SortedSet<T> | unmodifiableSortedSet(SortedSet<T> s) | 返回指定排序集的不可修改視圖。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final List EMPTY_LIST
空列表(不可變)。 這個(gè)列表是可序列化的。
public static final Map EMPTY_MAP
空地圖(不可變)。 該地圖是可序列化的。
public static final Set EMPTY_SET
空集(不可變)。 這個(gè)集合是可序列化的。
public static <T extends Comparable<? super T>> void sort(List<T> list)
根據(jù)其元素的 Comparable 對(duì)指定列表進(jìn)行升序排序。 列表中的所有元素都必須實(shí)現(xiàn) Comparable 接口。 此外,列表中的所有元素必須相互可比較(即,e1.compareTo(e2) 不得為列表中的任何元素 e1 和 e2 拋出 ClassCastException)。
這種排序保證是穩(wěn)定的:相同的元素不會(huì)因?yàn)榕判蚨匦屡判颉?/p>
指定的列表必須是可修改的,但不必調(diào)整大小。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要排序的列表。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果列表包含不可相互比較的元素(例如,字符串和整數(shù))。 |
UnsupportedOperationException | 如果指定列表的列表迭代器不支持設(shè)置操作。 |
IllegalArgumentException | (可選)如果實(shí)現(xiàn)檢測(cè)到列表元素的自然順序被發(fā)現(xiàn)違反了 Comparable 合約 |
public static <T> void sort(List<T> list, Comparator<? super T> c)
根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M(jìn)行排序。 列表中的所有元素必須使用指定的比較器進(jìn)行相互比較(即,c.compare(e1, e2) 不得為列表中的任何元素 e1 和 e2 拋出 ClassCastException)。
這種排序保證是穩(wěn)定的:相同的元素不會(huì)因?yàn)榕判蚨匦屡判颉?/p>
指定的列表必須是可修改的,但不必調(diào)整大小。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要排序的列表。 |
c | 比較器來(lái)確定列表的順序。 空值表示應(yīng)使用元素的自然順序。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果列表包含使用指定比較器不能相互比較的元素。 |
UnsupportedOperationException | 如果指定列表的列表迭代器不支持設(shè)置操作。 |
IllegalArgumentException | (可選)如果發(fā)現(xiàn)比較器違反了比較器合同 |
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
使用二分搜索算法在指定列表中搜索指定對(duì)象。 在進(jìn)行此調(diào)用之前,必須根據(jù)其元素的 Comparable 對(duì)列表進(jìn)行升序排序(如通過(guò) sort(java.util.List) 方法)。 如果未排序,則結(jié)果未定義。 如果列表包含多個(gè)等于指定對(duì)象的元素,則無(wú)法保證會(huì)找到哪一個(gè)。
此方法在 log(n) 時(shí)間內(nèi)針對(duì)“隨機(jī)訪問(wèn)”列表(提供接近恒定時(shí)間的位置訪問(wèn))運(yùn)行。 如果指定的列表沒(méi)有實(shí)現(xiàn) RandomAccess 接口并且很大,則此方法將執(zhí)行基于迭代器的二進(jìn)制搜索,執(zhí)行 O(n) 鏈接遍歷和 O(log n) 元素比較。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要搜索的列表。 |
key | 要搜索的鍵。 |
返回:
搜索關(guān)鍵字的索引,如果它包含在列表中; 否則,(-(插入點(diǎn))- 1)。 插入點(diǎn)定義為將鍵插入列表的點(diǎn):第一個(gè)元素的索引大于鍵,如果列表中的所有元素都小于指定的鍵,則為 list.size()。 請(qǐng)注意,這保證了當(dāng)且僅當(dāng)找到鍵時(shí),返回值將 >= 0。
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果列表包含不可相互比較的元素(例如,字符串和整數(shù)),或者搜索鍵與列表的元素不可相互比較。 |
public static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
使用二分搜索算法在指定列表中搜索指定對(duì)象。 在進(jìn)行此調(diào)用之前,必須根據(jù)指定的比較器(如通過(guò) sort(List, Comparator) 方法)對(duì)列表進(jìn)行升序排序。 如果未排序,則結(jié)果未定義。 如果列表包含多個(gè)等于指定對(duì)象的元素,則無(wú)法保證會(huì)找到哪一個(gè)。
此方法在 log(n) 時(shí)間內(nèi)針對(duì)“隨機(jī)訪問(wèn)”列表(提供接近恒定時(shí)間的位置訪問(wèn))運(yùn)行。 如果指定的列表沒(méi)有實(shí)現(xiàn) RandomAccess 接口并且很大,則此方法將執(zhí)行基于迭代器的二進(jìn)制搜索,執(zhí)行 O(n) 鏈接遍歷和 O(log n) 元素比較。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要搜索的列表。 |
key | 要搜索的鍵。 |
c | 排序列表的比較器。 空值表示應(yīng)該使用元素的 Comparable。 |
返回:
搜索關(guān)鍵字的索引,如果它包含在列表中; 否則,(-(插入點(diǎn))- 1)。 插入點(diǎn)定義為將鍵插入列表的點(diǎn):第一個(gè)元素的索引大于鍵,如果列表中的所有元素都小于指定的鍵,則為 list.size()。 請(qǐng)注意,這保證了當(dāng)且僅當(dāng)找到鍵時(shí),返回值將 >= 0。
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果列表包含使用指定比較器不能相互比較的元素,或者搜索鍵與使用此比較器的列表元素不能相互比較。 |
public static void reverse(List<?> list)
反轉(zhuǎn)指定列表中元素的順序。
此方法以線性時(shí)間運(yùn)行。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要反轉(zhuǎn)其元素的列表。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設(shè)置操作。 |
public static void shuffle(List<?> list)
使用默認(rèn)隨機(jī)源隨機(jī)排列指定列表。所有排列都以大致相等的可能性發(fā)生。
在前面的描述中使用了“大約”對(duì)沖,因?yàn)槟J(rèn)隨機(jī)源只是大約獨(dú)立選擇位的無(wú)偏源。如果它是隨機(jī)選擇的比特的完美來(lái)源,那么該算法將選擇具有完美一致性的排列。
此實(shí)現(xiàn)從最后一個(gè)元素到第二個(gè)元素向后遍歷列表,反復(fù)將隨機(jī)選擇的元素交換到“當(dāng)前位置”。元素是從列表中從第一個(gè)元素到當(dāng)前位置(含)的部分中隨機(jī)選擇的。
此方法以線性時(shí)間運(yùn)行。如果指定列表沒(méi)有實(shí)現(xiàn) RandomAccess 接口并且很大,則此實(shí)現(xiàn)在打亂之前將指定列表轉(zhuǎn)儲(chǔ)到數(shù)組中,并將打亂后的數(shù)組轉(zhuǎn)儲(chǔ)回列表中。這避免了因?qū)ⅰ绊樞蛟L問(wèn)”列表改組而導(dǎo)致的二次行為。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要洗牌的列表。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設(shè)置操作。 |
public static void shuffle(List<?> list, Random rnd)
使用指定的隨機(jī)源隨機(jī)排列指定的列表。 假設(shè)隨機(jī)性的來(lái)源是公平的,所有排列都以相同的可能性發(fā)生。
此實(shí)現(xiàn)從最后一個(gè)元素到第二個(gè)元素向后遍歷列表,反復(fù)將隨機(jī)選擇的元素交換到“當(dāng)前位置”。 元素是從列表中從第一個(gè)元素到當(dāng)前位置(含)的部分中隨機(jī)選擇的。
此方法以線性時(shí)間運(yùn)行。 如果指定列表沒(méi)有實(shí)現(xiàn) RandomAccess 接口并且很大,則此實(shí)現(xiàn)在打亂之前將指定列表轉(zhuǎn)儲(chǔ)到數(shù)組中,并將打亂后的數(shù)組轉(zhuǎn)儲(chǔ)回列表中。 這避免了因?qū)ⅰ绊樞蛟L問(wèn)”列表改組而導(dǎo)致的二次行為。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要洗牌的列表。 |
rnd | 用于隨機(jī)排列列表的隨機(jī)源。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設(shè)置操作。 |
public static void swap(List<?> list, int i, int j)
交換指定列表中指定位置的元素。 (如果指定的位置相等,則調(diào)用此方法會(huì)使列表保持不變。)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 交換元素的列表。 |
i | 要交換的一個(gè)元素的索引。 |
j | 要交換的另一個(gè)元素的索引。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果 i 或 j 超出范圍 (i < 0 || i >= list.size() || j < 0 || j >= list.size())。 |
public static <T> void fill(List<? super T> list, T obj)
用指定元素替換指定列表的所有元素。
此方法以線性時(shí)間運(yùn)行。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要填充指定元素的列表。 |
obj | 用于填充指定列表的元素。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設(shè)置操作。 |
public static <T> void copy(List<? super T> dest, List<? extends T> src)
將一個(gè)列表中的所有元素復(fù)制到另一個(gè)列表中。 操作后,目標(biāo)列表中每個(gè)復(fù)制元素的索引將與其在源列表中的索引相同。 目標(biāo)列表必須至少與源列表一樣長(zhǎng)。 如果它更長(zhǎng),則目標(biāo)列表中的其余元素不受影響。
此方法以線性時(shí)間運(yùn)行。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
dest | 目的地列表。 |
src | 源列表。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果目標(biāo)列表太小而無(wú)法包含整個(gè)源列表。 |
UnsupportedOperationException | 如果目標(biāo)列表的列表迭代器不支持設(shè)置操作。 |
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
根據(jù)元素的自然順序返回給定集合的最小元素。 集合中的所有元素都必須實(shí)現(xiàn) Comparable 接口。 此外,集合中的所有元素必須相互可比較(即,e1.compareTo(e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個(gè)集合,因此它需要與集合大小成正比的時(shí)間。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
coll | 要確定其最小元素的集合。 |
返回:
給定集合的最小元素,根據(jù)其元素的自然順序。
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果集合包含不可相互比較的元素(例如,字符串和整數(shù))。 |
NoSuchElementException | 如果集合為空。 |
public static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp)
根據(jù)指定比較器誘導(dǎo)的順序返回給定集合的最小元素。 集合中的所有元素必須通過(guò)指定的比較器相互比較(即,comp.compare(e1, e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個(gè)集合,因此它需要與集合大小成正比的時(shí)間。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
coll | 要確定其最小元素的集合。 |
comp | 用于確定最小元素的比較器。 空值表示應(yīng)使用元素的自然順序。 |
返回:
根據(jù)指定的比較器,給定集合的最小元素。
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果集合包含使用指定比較器不能相互比較的元素。 |
NoSuchElementException | 如果集合為空。 |
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
根據(jù)元素的自然順序返回給定集合的最大元素。 集合中的所有元素都必須實(shí)現(xiàn) Comparable 接口。 此外,集合中的所有元素必須相互可比較(即,e1.compareTo(e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個(gè)集合,因此它需要與集合大小成正比的時(shí)間。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
coll | 要確定其最大元素的集合。 |
返回:
給定集合的最大元素,根據(jù)其元素的自然順序。
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果集合包含不可相互比較的元素(例如,字符串和整數(shù))。 |
NoSuchElementException | 如果集合為空。 |
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)
根據(jù)指定比較器誘導(dǎo)的順序返回給定集合的最大元素。 集合中的所有元素必須通過(guò)指定的比較器相互比較(即,comp.compare(e1, e2) 不得為集合中的任何元素 e1 和 e2 拋出 ClassCastException)。
此方法迭代整個(gè)集合,因此它需要與集合大小成正比的時(shí)間。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
coll | 要確定其最大元素的集合。 |
comp | 用于確定最大元素的比較器。 空值表示應(yīng)使用元素的自然順序。 |
返回:
根據(jù)指定的比較器,給定集合的最大元素。
Throws:
Throw名稱 | Throw描述 |
---|---|
ClassCastException | 如果集合包含使用指定比較器不能相互比較的元素。 |
NoSuchElementException | 如果集合為空。 |
public static void rotate(List<?> list, int distance)
將指定列表中的元素旋轉(zhuǎn)指定距離。 調(diào)用此方法后,索引 i 處的元素將是先前位于索引 (i - 距離) mod list.size() 處的元素,對(duì)于 i 的所有值介于 0 和 list.size()-1 之間,包括 0 和 list.size()-1。 (此方法對(duì)列表的大小沒(méi)有影響。)
例如,假設(shè)列表包含 [t, a, n, k, s]。 調(diào)用 Collections.rotate(list, 1)(或 Collections.rotate(list, -4))后,列表將包含 [s, t, a, n, k]。
請(qǐng)注意,此方法可以有效地應(yīng)用于子列表,以在列表中移動(dòng)一個(gè)或多個(gè)元素,同時(shí)保留剩余元素的順序。 例如,以下習(xí)慣用法將索引 j 處的元素向前移動(dòng)到位置 k(必須大于或等于 j):
Collections.rotate(list.subList(j, k+1), -1);
為了具體說(shuō)明,假設(shè)列表包含 [a, b, c, d, e]。 要將索引 1 (b) 處的元素向前移動(dòng)兩個(gè)位置,請(qǐng)執(zhí)行以下調(diào)用:
Collections.rotate(l.subList(1, 4), -1);
結(jié)果列表是 [a, c, d, b, e]。
要向前移動(dòng)多個(gè)元素,請(qǐng)?jiān)黾有D(zhuǎn)距離的絕對(duì)值。要向后移動(dòng)元素,請(qǐng)使用正偏移距離。
如果指定的列表很小或?qū)崿F(xiàn)了 RandomAccess 接口,則此實(shí)現(xiàn)將第一個(gè)元素交換到它應(yīng)該去的位置,然后重復(fù)地將被替換的元素交換到它應(yīng)該去的位置,直到一個(gè)被替換的元素被交換到第一個(gè)元素。如有必要,對(duì)第二個(gè)和后續(xù)元素重復(fù)該過(guò)程,直到旋轉(zhuǎn)完成。如果指定的列表很大并且沒(méi)有實(shí)現(xiàn) RandomAccess 接口,則此實(shí)現(xiàn)將列表分成兩個(gè)圍繞 index -distance mod 大小的子列表視圖。然后在每個(gè)子列表視圖上調(diào)用 reverse(java.util.List) 方法,最后在整個(gè)列表上調(diào)用它。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要輪換的列表。 |
distance | 旋轉(zhuǎn)列表的距離。 這個(gè)值沒(méi)有限制; 它可能為零、負(fù)數(shù)或大于 list.size()。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設(shè)置操作。 |
public static <T> boolean replaceAll(List<T> list, T oldVal, T newVal)
將列表中一個(gè)指定值的所有出現(xiàn)替換為另一個(gè)。 更正式地說(shuō),用 newVal 替換列表中的每個(gè)元素 e,使得 (oldVal==null ? e==null : oldVal.equals(e))。 (此方法對(duì)列表的大小沒(méi)有影響。)
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要發(fā)生替換的列表。 |
oldVal | 要替換的舊值。 |
newVal | oldVal 將被替換的新值。 |
返回:
如果 list 包含一個(gè)或多個(gè)元素 e 滿足 (oldVal==null ? e==null : oldVal.equals(e)),則為 true。
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果指定的列表或其列表迭代器不支持設(shè)置操作。 |
public static int indexOfSubList(List<?> source, List<?> target)
返回指定源列表中指定目標(biāo)列表第一次出現(xiàn)的起始位置,如果沒(méi)有出現(xiàn),則返回 -1。 更正式地說(shuō),返回滿足 source.subList(i, i+target.size()).equals(target) 的最低索引 i,如果沒(méi)有這樣的索引,則返回 -1。 (如果 target.size() > source.size() 則返回 -1)
此實(shí)現(xiàn)使用掃描源列表的“brute force”技術(shù),依次在每個(gè)位置尋找與目標(biāo)的匹配。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 在其中搜索第一次出現(xiàn)的目標(biāo)的列表。 |
target | 要搜索的列表作為源的子列表。 |
返回:
指定目標(biāo)列表在指定源列表中第一次出現(xiàn)的起始位置,如果沒(méi)有出現(xiàn),則為 -1。
public static int lastIndexOfSubList(List<?> source, List<?> target)
返回指定目標(biāo)列表在指定源列表中最后一次出現(xiàn)的起始位置,如果沒(méi)有出現(xiàn),則返回 -1。 更正式地說(shuō),返回最高索引 i 使得 source.subList(i, i+target.size()).equals(target),如果沒(méi)有這樣的索引,則返回 -1。 (如果 target.size() > source.size() 則返回 -1)
該實(shí)現(xiàn)使用“brute force”技術(shù)迭代源列表,依次在每個(gè)位置尋找與目標(biāo)的匹配。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要在其中搜索最后一次出現(xiàn)的目標(biāo)的列表。 |
target | 要搜索的列表作為源的子列表。 |
返回:
指定源列表中指定目標(biāo)列表的最后一次出現(xiàn)的起始位置,如果沒(méi)有這樣的出現(xiàn),則為 -1。
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
返回指定集合的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部集合的“只讀”訪問(wèn)權(quán)限。 對(duì)返回集合的查詢操作“通讀”到指定集合,并嘗試修改返回的集合,無(wú)論是直接還是通過(guò)其迭代器,都會(huì)導(dǎo)致 UnsupportedOperationException。
返回的集合不會(huì)將 hashCode 和 equals 操作傳遞給支持集合,而是依賴于 Object 的 equals 和 hashCode 方法。 在支持集合是集合或列表的情況下,這對(duì)于保留這些操作的合同是必要的。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c | 要為其返回不可修改視圖的集合。 |
返回:
指定集合的不可修改視圖。
public static <T> Set<T> unmodifiableSet(Set<? extends T> s)
返回指定集合的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部集的“只讀”訪問(wèn)權(quán)限。 對(duì)返回集“通讀”到指定集的查詢操作,并嘗試修改返回集,無(wú)論是直接還是通過(guò)其迭代器,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要為其返回不可修改視圖的集合。 |
返回:
指定集合的不可修改視圖。
public static <T> SortedSet<T> unmodifiableSortedSet(SortedSet<T> s)
返回指定排序集的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部排序集的“只讀”訪問(wèn)權(quán)限。 對(duì)返回的排序集的查詢操作“通讀”到指定的排序集。 嘗試修改返回的排序集,無(wú)論是直接的、通過(guò)它的迭代器,還是通過(guò)它的 subSet、headSet 或 tailSet 視圖,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的排序集是可序列化的,則返回的排序集將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要為其返回不可修改視圖的排序集。 |
返回:
指定排序集的不可修改視圖。
public static <T> NavigableSet<T> unmodifiableNavigableSet(NavigableSet<T> s)
返回指定導(dǎo)航集的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部可導(dǎo)航集的“只讀”訪問(wèn)權(quán)限。 對(duì)返回的導(dǎo)航集的查詢操作“通讀”到指定的導(dǎo)航集。 嘗試修改返回的可導(dǎo)航集,無(wú)論是直接、通過(guò)其迭代器,還是通過(guò)其子集、頭集或尾集視圖,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的導(dǎo)航集是可序列化的,則返回的導(dǎo)航集將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要為其返回不可修改視圖的可導(dǎo)航集 |
返回:
指定導(dǎo)航集的不可修改視圖
public static <T> List<T> unmodifiableList(List<? extends T> list)
返回指定列表的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部列表的“只讀”訪問(wèn)權(quán)限。 對(duì)返回列表的查詢操作“通讀”到指定列表,并嘗試修改返回的列表,無(wú)論是直接還是通過(guò)其迭代器,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的列表是可序列化的,則返回的列表將是可序列化的。 同樣,如果指定的列表執(zhí)行,則返回的列表將實(shí)現(xiàn) RandomAccess。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要為其返回不可修改視圖的列表。 |
返回:
指定列表的不可修改視圖。
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)
返回指定地圖的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部地圖的“只讀”訪問(wèn)權(quán)限。 對(duì)返回的映射“通讀”到指定映射的查詢操作,并嘗試修改返回的映射,無(wú)論是直接還是通過(guò)其集合視圖,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | 地圖值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要為其返回不可修改視圖的map。 |
返回:
指定map的不可修改視圖。
public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> m)
返回指定排序地圖的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部排序地圖的“只讀”訪問(wèn)權(quán)限。 對(duì)返回的有序映射的查詢操作“通讀”到指定的有序映射。 嘗試修改返回的排序地圖,無(wú)論是直接的、通過(guò)它的集合視圖,還是通過(guò)它的 subMap、headMap 或 tailMap 視圖,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的排序映射是可序列化的,則返回的排序映射將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要為其返回不可修改視圖的排序映射。 |
返回:
指定排序映射的不可修改視圖。
public static <K,V> NavigableMap<K,V> unmodifiableNavigableMap(NavigableMap<K,? extends V> m)
返回指定導(dǎo)航地圖的不可修改視圖。 此方法允許模塊為用戶提供對(duì)內(nèi)部可導(dǎo)航地圖的“只讀”訪問(wèn)權(quán)限。 對(duì)返回的導(dǎo)航地圖的查詢操作“通讀”到指定的導(dǎo)航地圖。 嘗試修改返回的可導(dǎo)航地圖,無(wú)論是直接通過(guò)其集合視圖,還是通過(guò)其 subMap、headMap 或 tailMap 視圖,都會(huì)導(dǎo)致 UnsupportedOperationException。
如果指定的導(dǎo)航地圖是可序列化的,則返回的導(dǎo)航地圖將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要為其返回不可修改視圖的可導(dǎo)航map |
返回:
指定導(dǎo)航map的不可修改視圖
public static <T> Collection<T> synchronizedCollection(Collection<T> c)
返回由指定集合支持的同步(線程安全)集合。 為了保證串行訪問(wèn),對(duì)后備集合的所有訪問(wèn)都是通過(guò)返回的集合完成的,這一點(diǎn)至關(guān)重要。
當(dāng)通過(guò) Iterator、Spliterator 或 Stream 遍歷返回的集合時(shí),用戶必須手動(dòng)同步它:
Collection c = Collections.synchronizedCollection(myCollection);
...
synchronized (c) {
Iterator i = c.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
返回的集合不會(huì)將 hashCode 和 equals 操作傳遞給支持集合,而是依賴于 Object 的 equals 和 hashCode 方法。 在支持集合是集合或列表的情況下,這對(duì)于保留這些操作的合同是必要的。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c | 要“wrapped”在同步集合中的集合。 |
返回:
指定集合的同步視圖。
public static <T> Set<T> synchronizedSet(Set<T> s)
返回由指定集支持的同步(線程安全)集。 為了保證串行訪問(wèn),對(duì)支持集的所有訪問(wèn)都是通過(guò)返回集完成的,這一點(diǎn)至關(guān)重要。
當(dāng)?shù)鼤r(shí),用戶必須在返回的集合上手動(dòng)同步:
Set s = Collections.synchronizedSet(new HashSet());
...
synchronized (s) {
Iterator i = s.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要“wrapped”在同步集中的集合。 |
返回:
指定集合的同步視圖。
public static <T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s)
返回由指定排序集支持的同步(線程安全)排序集。 為了保證串行訪問(wèn),對(duì)后備排序集的所有訪問(wèn)都是通過(guò)返回的排序集(或其視圖)完成的,這一點(diǎn)至關(guān)重要。
當(dāng)?shù)祷氐呐判蚣蚱淙魏巫蛹?、頭集或尾集視圖時(shí),用戶必須手動(dòng)同步返回的排序集。
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());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的排序集是可序列化的,則返回的排序集將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 將排序集“wrapped”在同步排序集中。 |
返回:
指定排序集的同步視圖。
public static <T> NavigableSet<T> synchronizedNavigableSet(NavigableSet<T> s)
返回由指定導(dǎo)航集支持的同步(線程安全)導(dǎo)航集。 為了保證串行訪問(wèn),對(duì)支持導(dǎo)航集的所有訪問(wèn)都是通過(guò)返回的導(dǎo)航集(或其視圖)完成的,這一點(diǎn)至關(guān)重要。
當(dāng)?shù)祷氐目蓪?dǎo)航集或其任何子集、頭集或尾集視圖時(shí),用戶必須手動(dòng)同步返回的可導(dǎo)航集。
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());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的導(dǎo)航集是可序列化的,則返回的導(dǎo)航集將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 將可導(dǎo)航集“wrapped”在同步可導(dǎo)航集中 |
返回:
指定導(dǎo)航集的同步視圖
public static <T> List<T> synchronizedList(List<T> list)
返回由指定列表支持的同步(線程安全)列表。 為了保證串行訪問(wèn),對(duì)后備列表的所有訪問(wèn)都通過(guò)返回的列表完成是至關(guān)重要的。
用戶在迭代返回的列表時(shí)必須手動(dòng)同步它:
List list = Collections.synchronizedList(new ArrayList());
...
synchronized (list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的列表是可序列化的,則返回的列表將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要“wrapped”在同步列表中的列表。 |
返回:
指定列表的同步視圖。
public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m)
返回由指定映射支持的同步(線程安全)映射。 為了保證串行訪問(wèn),對(duì)支持映射的所有訪問(wèn)都是通過(guò)返回的映射完成的,這一點(diǎn)至關(guān)重要。
當(dāng)?shù)淙魏渭弦晥D時(shí),用戶必須在返回的地圖上手動(dòng)同步:
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());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | 地圖值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要“wrapped”在同步map中的map。 |
Returns:
a synchronized view of the specified map.
public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m)
返回由指定排序映射支持的同步(線程安全)排序映射。 為了保證串行訪問(wèn),對(duì)后備排序映射的所有訪問(wèn)都是通過(guò)返回的排序映射(或其視圖)完成的,這一點(diǎn)至關(guān)重要。
當(dāng)?shù)淙魏渭弦晥D或其任何 subMap、headMap 或 tailMap 視圖的集合視圖時(shí),用戶必須在返回的排序地圖上手動(dòng)同步。
SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
...
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());
}
或者:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
SortedMap m2 = m.subMap(foo, bar);
...
Set s2 = m2.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not m2 or s2!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的排序映射是可序列化的,則返回的排序映射將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要“wrapped”在同步排序映射中的排序映射。 |
返回:
指定排序map的同步視圖。
public static <K,V> NavigableMap<K,V> synchronizedNavigableMap(NavigableMap<K,V> m)
返回由指定可導(dǎo)航地圖支持的同步(線程安全)可導(dǎo)航地圖。 為了保證串行訪問(wèn),對(duì)支持導(dǎo)航地圖的所有訪問(wèn)都是通過(guò)返回的導(dǎo)航地圖(或其視圖)完成的,這一點(diǎn)至關(guān)重要。
當(dāng)?shù)淙魏渭弦晥D或其任何 subMap、headMap 或 tailMap 視圖的集合視圖時(shí),用戶必須在返回的可導(dǎo)航地圖上手動(dòng)同步。
NavigableMap m = Collections.synchronizedNavigableMap(new TreeMap());
...
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());
}
或者:
NavigableMap m = Collections.synchronizedNavigableMap(new TreeMap());
NavigableMap m2 = m.subMap(foo, true, bar, false);
...
Set s2 = m2.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not m2 or s2!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
不遵循此建議可能會(huì)導(dǎo)致不確定的行為。
如果指定的導(dǎo)航地圖是可序列化的,則返回的導(dǎo)航地圖將是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | 地圖值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 在同步的可導(dǎo)航map中“包裝”的可導(dǎo)航map |
返回:
指定導(dǎo)航map的同步視圖。
public static <E> Collection<E> checkedCollection(Collection<E> c, Class<E> type)
返回指定集合的動(dòng)態(tài)類型安全視圖。任何插入錯(cuò)誤類型元素的嘗試都將立即導(dǎo)致 ClassCastException。假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,集合不包含類型錯(cuò)誤的元素,并且所有后續(xù)對(duì)集合的訪問(wèn)都通過(guò)視圖進(jìn)行,則可以保證集合不會(huì)包含類型錯(cuò)誤的元素。
該語(yǔ)言中的泛型機(jī)制提供了編譯時(shí)(靜態(tài))類型檢查,但可以通過(guò)未經(jīng)檢查的強(qiáng)制轉(zhuǎn)換來(lái)破壞這種機(jī)制。通常這不是問(wèn)題,因?yàn)榫幾g器會(huì)對(duì)所有此類未經(jīng)檢查的操作發(fā)出警告。然而,有時(shí)僅靜態(tài)類型檢查是不夠的。例如,假設(shè)一個(gè)集合被傳遞給第三方庫(kù),并且?guī)齑a必須不通過(guò)插入錯(cuò)誤類型的元素來(lái)破壞集合。
動(dòng)態(tài)類型安全視圖的另一個(gè)用途是調(diào)試。假設(shè)程序因 ClassCastException 而失敗,表明將錯(cuò)誤類型的元素放入?yún)?shù)化集合中。不幸的是,在插入錯(cuò)誤元素后的任何時(shí)候都可能發(fā)生異常,因此它通常很少或根本沒(méi)有提供有關(guān)問(wèn)題真正來(lái)源的信息。如果問(wèn)題是可重現(xiàn)的,則可以通過(guò)臨時(shí)修改程序以使用動(dòng)態(tài)類型安全視圖包裝集合來(lái)快速確定其來(lái)源。例如,這個(gè)聲明:
Collection<String> c = new HashSet<>();
可以暫時(shí)用這個(gè)代替:
Collection<String> c = Collections.checkedCollection(
new HashSet<>(), String.class);
再次運(yùn)行程序?qū)?dǎo)致它在將錯(cuò)誤類型的元素插入到集合中時(shí)失敗,從而清楚地確定問(wèn)題的根源。 一旦問(wèn)題得到解決,修改后的聲明可能會(huì)恢復(fù)為原始聲明。
返回的集合不會(huì)將 hashCode 和 equals 操作傳遞給支持集合,而是依賴于 Object 的 equals 和 hashCode 方法。 在支持集合是集合或列表的情況下,這對(duì)于保留這些操作的合同是必要的。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的集合允許在支持集合時(shí)插入 null 元素。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c | 要為其返回動(dòng)態(tài)類型安全視圖的集合 |
type | 允許 c 持有的元素類型 |
返回:
指定集合的動(dòng)態(tài)類型安全視圖
public static <E> Queue<E> checkedQueue(Queue<E> queue, Class<E> type)
返回指定隊(duì)列的動(dòng)態(tài)類型安全視圖。 任何插入錯(cuò)誤類型元素的嘗試都將立即導(dǎo)致 ClassCastException。 假設(shè)在生成動(dòng)態(tài)類型安全視圖之前隊(duì)列不包含類型錯(cuò)誤的元素,并且所有后續(xù)對(duì)隊(duì)列的訪問(wèn)都通過(guò)視圖進(jìn)行,則可以保證隊(duì)列不會(huì)包含類型錯(cuò)誤的元素。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的隊(duì)列是可序列化的,則返回的隊(duì)列將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的隊(duì)列允許在后備隊(duì)列中插入 null 元素。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 隊(duì)列中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
queue | 要為其返回動(dòng)態(tài)類型安全視圖的隊(duì)列 |
type | 隊(duì)列允許持有的元素類型 |
返回:
指定隊(duì)列的動(dòng)態(tài)類型安全視圖
public static <E> Set<E> checkedSet(Set<E> s, Class<E> type)
返回指定集合的動(dòng)態(tài)類型安全視圖。 任何插入錯(cuò)誤類型元素的嘗試都將立即導(dǎo)致 ClassCastException。 假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,集合不包含錯(cuò)誤類型的元素,并且所有后續(xù)訪問(wèn)該集合都通過(guò)該視圖進(jìn)行,則可以保證該集合不能包含錯(cuò)誤類型的元素。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的集合是可序列化的,則返回的集合將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此只要支持集插入,返回的集合就允許插入 null 元素。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要為其返回動(dòng)態(tài)類型安全視圖的集合 |
type | s 允許持有的元素類型 |
返回:
指定集合的動(dòng)態(tài)類型安全視圖
public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s, Class<E> type)
返回指定排序集的動(dòng)態(tài)類型安全視圖。 任何插入錯(cuò)誤類型元素的嘗試都將立即導(dǎo)致 ClassCastException。 假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,排序集不包含類型錯(cuò)誤的元素,并且所有后續(xù)對(duì)排序集的訪問(wèn)都通過(guò)視圖進(jìn)行,則可以保證排序集不會(huì)包含類型錯(cuò)誤的元素。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的排序集是可序列化的,則返回的排序集將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的排序集允許在支持排序集插入時(shí)插入 null 元素。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要為其返回動(dòng)態(tài)類型安全視圖的排序集 |
type | s 允許持有的元素類型 |
返回:
指定排序集的動(dòng)態(tài)類型安全視圖
public static <E> NavigableSet<E> checkedNavigableSet(NavigableSet<E> s, Class<E> type)
返回指定導(dǎo)航集的動(dòng)態(tài)類型安全視圖。 任何插入錯(cuò)誤類型元素的嘗試都將立即導(dǎo)致 ClassCastException。 假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,可導(dǎo)航集不包含類型錯(cuò)誤的元素,并且所有后續(xù)訪問(wèn)可導(dǎo)航集都通過(guò)視圖進(jìn)行,則可以保證可導(dǎo)航集不能包含錯(cuò)誤類型的元素。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的導(dǎo)航集是可序列化的,則返回的導(dǎo)航集將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的可導(dǎo)航集允許在支持排序集插入時(shí)插入 null 元素。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要為其返回動(dòng)態(tài)類型安全視圖的可導(dǎo)航集 |
type | s 允許持有的元素類型 |
返回:
指定可導(dǎo)航集的動(dòng)態(tài)類型安全視圖
public static <E> List<E> checkedList(List<E> list, Class<E> type)
返回指定列表的動(dòng)態(tài)類型安全視圖。 任何插入錯(cuò)誤類型元素的嘗試都將立即導(dǎo)致 ClassCastException。 假設(shè)在生成動(dòng)態(tài)類型安全視圖之前列表不包含錯(cuò)誤類型的元素,并且所有后續(xù)訪問(wèn)列表都通過(guò)視圖進(jìn)行,則可以保證列表不能包含錯(cuò)誤類型的元素。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的列表是可序列化的,則返回的列表將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的列表允許在后備列表中插入 null 元素。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
list | 要為其返回動(dòng)態(tài)類型安全視圖的列表 |
type | 列表允許包含的元素類型 |
返回:
指定列表的動(dòng)態(tài)類型安全視圖
public static <K,V> Map<K,V> checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType)
返回指定映射的動(dòng)態(tài)類型安全視圖。任何插入其鍵或值類型錯(cuò)誤的映射的嘗試都將立即導(dǎo)致 ClassCastException。類似地,任何修改當(dāng)前與鍵關(guān)聯(lián)的值的嘗試都將立即導(dǎo)致 ClassCastException,無(wú)論是直接通過(guò)映射本身嘗試修改,還是通過(guò)從映射的 Map#entrySet() 視圖獲得的 Map.Entry 實(shí)例。
假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,映射不包含錯(cuò)誤類型的鍵或值,并且所有后續(xù)對(duì)映射的訪問(wèn)都通過(guò)視圖(或其集合視圖之一)進(jìn)行,則可以保證映射不能包含鍵入錯(cuò)誤的鍵或值。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的映射允許在支持映射時(shí)插入空鍵或值。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要為其返回動(dòng)態(tài)類型安全視圖的映射 |
keyType | 允許 m 持有的密鑰類型 |
valueType | m 被允許持有的值的類型 |
返回:
指定映射的動(dòng)態(tài)類型安全視圖
public static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType)
返回指定排序映射的動(dòng)態(tài)類型安全視圖。任何插入其鍵或值類型錯(cuò)誤的映射的嘗試都將立即導(dǎo)致 ClassCastException。類似地,任何修改當(dāng)前與鍵關(guān)聯(lián)的值的嘗試都將立即導(dǎo)致 ClassCastException,無(wú)論是直接通過(guò)映射本身嘗試修改,還是通過(guò)從映射的 Map#entrySet() 視圖獲得的 Map.Entry 實(shí)例。
假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,映射不包含錯(cuò)誤類型的鍵或值,并且所有后續(xù)對(duì)映射的訪問(wèn)都通過(guò)視圖(或其集合視圖之一)進(jìn)行,則可以保證映射不能包含鍵入錯(cuò)誤的鍵或值。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的映射允許在支持映射時(shí)插入空鍵或值。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要為其返回動(dòng)態(tài)類型安全視圖的映射 |
keyType | 允許 m 持有的密鑰類型 |
valueType | m 被允許持有的值的類型 |
返回:
指定映射的動(dòng)態(tài)類型安全視圖
public static <K,V> NavigableMap<K,V> checkedNavigableMap(NavigableMap<K,V> m, Class<K> keyType, Class<V> valueType)
返回指定可導(dǎo)航地圖的動(dòng)態(tài)類型安全視圖。任何插入其鍵或值類型錯(cuò)誤的映射的嘗試都將立即導(dǎo)致 ClassCastException。類似地,任何修改當(dāng)前與鍵關(guān)聯(lián)的值的嘗試都將立即導(dǎo)致 ClassCastException,無(wú)論是直接通過(guò)映射本身嘗試修改,還是通過(guò)從映射的 Map#entrySet() 視圖獲得的 Map.Entry 實(shí)例。
假設(shè)在生成動(dòng)態(tài)類型安全視圖之前,映射不包含錯(cuò)誤類型的鍵或值,并且所有后續(xù)對(duì)映射的訪問(wèn)都通過(guò)視圖(或其集合視圖之一)進(jìn)行,則可以保證映射不能包含鍵入錯(cuò)誤的鍵或值。
可以在 checkedCollection 方法的文檔中找到有關(guān)使用動(dòng)態(tài)類型安全視圖的討論。
如果指定的映射是可序列化的,則返回的映射將是可序列化的。
由于 null 被認(rèn)為是任何引用類型的值,因此返回的映射允許在支持映射時(shí)插入空鍵或值。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | map鍵的類型 |
V | map值的類型 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要為其返回動(dòng)態(tài)類型安全視圖的映射 |
keyType | 允許 m 持有的密鑰類型 |
valueType | m 被允許持有的值的類型 |
返回:
指定映射的動(dòng)態(tài)類型安全視圖
public static <T> Iterator<T> emptyIterator()
返回一個(gè)沒(méi)有元素的迭代器。 更確切地說(shuō),
允許但不要求此方法的實(shí)現(xiàn)從多次調(diào)用中返回相同的對(duì)象。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 迭代器中的元素類型(如果有) |
返回:
一個(gè)空的迭代器
public static <T> ListIterator<T> emptyListIterator()
返回一個(gè)沒(méi)有元素的列表迭代器。 更確切地說(shuō),
允許但不要求此方法的實(shí)現(xiàn)從多次調(diào)用中返回相同的對(duì)象。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 迭代器中的元素類型(如果有) |
返回:
一個(gè)空列表迭代器
public static <T> Enumeration<T> emptyEnumeration()
返回一個(gè)沒(méi)有元素的枚舉。 更確切地說(shuō),
允許但不要求此方法的實(shí)現(xiàn)從多次調(diào)用中返回相同的對(duì)象。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 枚舉中對(duì)象的類 |
返回:
空枚舉
public static final <T> Set<T> emptySet()
返回一個(gè)空集(不可變)。 這個(gè)集合是可序列化的。 與同名字段不同,此方法是參數(shù)化的。
此示例說(shuō)明了獲取空集的類型安全方法:
Set<String> s = Collections.emptySet();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
返回:
空集
public static <E> SortedSet<E> emptySortedSet()
返回一個(gè)空的排序集(不可變)。 這個(gè)集合是可序列化的。
此示例說(shuō)明了獲取空排序集的類型安全方法:
SortedSet<String> s = Collections.emptySortedSet();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 集合中元素的類型(如果有的話) |
返回:
空排序集
public static <E> NavigableSet<E> emptyNavigableSet()
返回一個(gè)空的可導(dǎo)航集(不可變)。 這個(gè)集合是可序列化的。
此示例說(shuō)明了獲取空可導(dǎo)航集的類型安全方法:
NavigableSet<String> s = Collections.emptyNavigableSet();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 集合中元素的類型(如果有的話) |
返回:
空的可導(dǎo)航集
public static final <T> List<T> emptyList()
返回一個(gè)空列表(不可變)。 這個(gè)列表是可序列化的。
此示例說(shuō)明了獲取空列表的類型安全方法:
List<String> s = Collections.emptyList();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中的元素類型(如果有) |
返回:
一個(gè)空的不可變列表
public static final <K,V> Map<K,V> emptyMap()
返回一個(gè)空映射(不可變)。 該地圖是可序列化的。
此示例說(shuō)明了獲取空映射的類型安全方法:
Map<String, Date> s = Collections.emptyMap();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
返回:
空map
public static final <K,V> SortedMap<K,V> emptySortedMap()
返回一個(gè)空的排序映射(不可變)。 該map是可序列化的。
此示例說(shuō)明了獲取空映射的類型安全方法:
SortedMap<String, Date> s = Collections.emptySortedMap();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
返回:
一個(gè)空的排序map
public static final <K,V> NavigableMap<K,V> emptyNavigableMap()
返回一個(gè)空的可導(dǎo)航map(不可變)。 該map是可序列化的。
此示例說(shuō)明了獲取空映射的類型安全方法:
NavigableMap<String, Date> s = Collections.emptyNavigableMap();
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
返回:
空的可導(dǎo)航map
public static <T> Set<T> singleton(T o)
返回一個(gè)只包含指定對(duì)象的不可變集合。 返回的集合是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
o | 要存儲(chǔ)在返回集中的唯一對(duì)象。 |
返回:
只包含指定對(duì)象的不可變集合。
public static <T> List<T> singletonList(T o)
返回僅包含指定對(duì)象的不可變列表。 返回的列表是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 列表中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
o | 要存儲(chǔ)在返回列表中的唯一對(duì)象。 |
返回:
只包含指定對(duì)象的不可變列表。
public static <K,V> Map<K,V> singletonMap(K key, V value)
返回一個(gè)不可變映射,僅將指定的鍵映射到指定的值。 返回的map是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
K | 映射鍵的類 |
V | map值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 要存儲(chǔ)在返回的映射中的唯一鍵。 |
value | 返回的映射鍵映射到的值。 |
返回:
只包含指定鍵值映射的不可變映射。
public static <T> List<T> nCopies(int n, T o)
返回由指定對(duì)象的 n 個(gè)副本組成的不可變列表。 新分配的數(shù)據(jù)對(duì)象很?。ㄋ瑢?duì)數(shù)據(jù)對(duì)象的單個(gè)引用)。 此方法與 List.addAll 方法結(jié)合使用可增加列表。 返回的列表是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 要復(fù)制的對(duì)象的類和返回列表中的對(duì)象的類。 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 返回列表中的元素?cái)?shù)。 |
o | 在返回列表中重復(fù)出現(xiàn)的元素。 |
返回:
由指定對(duì)象的 n 個(gè)副本組成的不可變列表。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 n < 0 |
public static <T> Comparator<T> reverseOrder()
返回一個(gè)比較器,它對(duì)實(shí)現(xiàn) Comparable 接口的對(duì)象集合施加自然順序的逆向。 (自然排序是對(duì)象自己的 compareTo 方法強(qiáng)加的排序。)這實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的習(xí)慣用法,用于排序(或維護(hù))以反向自然順序?qū)崿F(xiàn) Comparable 接口的對(duì)象集合(或數(shù)組)。 例如,假設(shè) a 是一個(gè)字符串?dāng)?shù)組。 然后:
Arrays.sort(a, Collections.reverseOrder());
以反向字典(字母)順序?qū)?shù)組進(jìn)行排序。
返回的比較器是可序列化的。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 比較器比較的對(duì)象的類別 |
返回:
一個(gè)比較器,它對(duì)實(shí)現(xiàn) Comparable 接口的對(duì)象集合施加自然順序的逆向。
public static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
返回一個(gè)比較器,它強(qiáng)制指定比較器的反向排序。 如果指定的比較器為 null,則此方法等效于 reverseOrder()(換句話說(shuō),它返回一個(gè)比較器,該比較器將自然排序的反向強(qiáng)加于實(shí)現(xiàn) Comparable 接口的對(duì)象集合)。
返回的比較器是可序列化的(假設(shè)指定的比較器也是可序列化的或?yàn)榭眨?/p>
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 比較器比較的對(duì)象的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
cmp | 一個(gè)比較器,其排序?qū)⒈环祷氐谋容^器或 null 反轉(zhuǎn) |
返回:
一個(gè)比較器,它強(qiáng)制指定比較器的反向排序。
public static <T> Enumeration<T> enumeration(Collection<T> c)
返回指定集合的枚舉。 這提供了與需要枚舉作為輸入的舊 API 的互操作性。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 集合中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c | 要為其返回枚舉的集合。 |
返回:
對(duì)指定集合的枚舉。
public static <T> ArrayList<T> list(Enumeration<T> e)
按枚舉返回的順序返回一個(gè)數(shù)組列表,其中包含指定枚舉返回的元素。 此方法提供了返回枚舉的舊 API 和需要集合的新 API 之間的互操作性。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 枚舉返回的對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
e | 為返回的數(shù)組列表提供元素的枚舉 |
返回:
包含指定枚舉返回的元素的數(shù)組列表。
public static int frequency(Collection<?> c, Object o)
返回指定集合中等于指定對(duì)象的元素?cái)?shù)。 更正式地說(shuō),返回集合中元素 e 的數(shù)量,使得 (o == null ? e == null : o.equals(e))。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c | 確定 o 頻率的集合 |
o | 待確定頻率的物體 |
返回:
c 中的元素個(gè)數(shù)等于 o
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 c 為空 |
public static boolean disjoint(Collection<?> c1, Collection<?> c2)
如果兩個(gè)指定的集合沒(méi)有共同的元素,則返回 true。
如果將此方法用于不符合收集總合同的收集,則必須小心。實(shí)現(xiàn)可以選擇迭代任一集合并測(cè)試另一個(gè)集合中的包含(或執(zhí)行任何等效計(jì)算)。如果任一集合使用非標(biāo)準(zhǔn)相等測(cè)試(如排序與 equals 不兼容的 SortedSet 或 IdentityHashMap 的鍵集),則兩個(gè)集合必須使用相同的非標(biāo)準(zhǔn)相等測(cè)試,否則此方法的結(jié)果未定義。
在使用對(duì)它們可能包含的元素有限制的集合時(shí),還必須小心。允許集合實(shí)現(xiàn)為涉及他們認(rèn)為不合格的元素的任何操作拋出異常。為了絕對(duì)安全,指定的集合應(yīng)僅包含對(duì)兩個(gè)集合都符合條件的元素。
請(qǐng)注意,允許在兩個(gè)參數(shù)中傳遞相同的集合,在這種情況下,當(dāng)且僅當(dāng)集合為空時(shí),該方法才會(huì)返回 true。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c1 | 一個(gè)集合 |
c2 | 一個(gè)集合 |
返回:
如果兩個(gè)指定的集合沒(méi)有共同的元素,則為 true。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果任一集合為空。 |
NullPointerException | 如果一個(gè)集合包含一個(gè) null 元素并且 null 不是另一個(gè)集合的合格元素。 (可選的) |
ClassCastException | 如果一個(gè)集合包含的元素的類型不適合另一個(gè)集合。 (可選的) |
@SafeVarargs public static <T> boolean addAll(Collection<? super T> c, T... elements)
將所有指定元素添加到指定集合。 要添加的元素可以單獨(dú)指定,也可以作為數(shù)組指定。 此便捷方法的行為與 c.addAll(Arrays.asList(elements)) 的行為相同,但此方法在大多數(shù)實(shí)現(xiàn)下可能運(yùn)行得更快。
當(dāng)單獨(dú)指定元素時(shí),此方法提供了一種將一些元素添加到現(xiàn)有集合的便捷方法:
Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 要添加的元素和集合的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
c | 要插入元素的集合 |
elements | 要插入到 c 中的元素 |
返回:
如果集合因調(diào)用而更改,則為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果 c 不支持添加操作 |
NullPointerException | 如果元素包含一個(gè)或多個(gè)空值并且 c 不允許空元素,或者如果 c 或元素為空 |
IllegalArgumentException | 如果元素中某個(gè)值的某些屬性阻止它被添加到 c |
public static <E> Set<E> newSetFromMap(MapE,Boolean map)
返回由指定映射支持的集合。 結(jié)果集顯示與支持映射相同的排序、并發(fā)性和性能特征。 本質(zhì)上,這個(gè)工廠方法提供了一個(gè)對(duì)應(yīng)于任何 Map 實(shí)現(xiàn)的 Set 實(shí)現(xiàn)。 沒(méi)有必要在已經(jīng)有對(duì)應(yīng) Set 實(shí)現(xiàn)的 Map 實(shí)現(xiàn)上使用該方法(例如 HashMap 或 TreeMap)。
對(duì)此方法返回的集合的每個(gè)方法調(diào)用都會(huì)導(dǎo)致對(duì)支持映射或其 keySet 視圖的一個(gè)方法調(diào)用,但有一個(gè)例外。 addAll 方法被實(shí)現(xiàn)為支持映射上的一系列 put 調(diào)用。
調(diào)用此方法時(shí)指定的映射必須為空,并且不應(yīng)在此方法返回后直接訪問(wèn)。 如果地圖創(chuàng)建為空,直接傳遞給此方法,并且不保留對(duì)地圖的引用,則可以確保這些條件,如以下代碼片段所示:
Set<Object> weakHashSet = Collections.newSetFromMap(
new WeakHashMap<Object, Boolean>());
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
E | 映射鍵的類和返回集中的對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
map | 支持map |
返回:
map支持的集合
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果map不為空 |
public static <T> Queue<T> asLifoQueue(Deque<T> deque)
將 Deque 的視圖返回為后進(jìn)先出 (Lifo) 隊(duì)列。 方法 add 映射到 push,remove 映射到 pop 等等。 當(dāng)您想使用需要隊(duì)列但需要 Lifo 排序的方法時(shí),此視圖可能很有用。
此方法返回的隊(duì)列上的每個(gè)方法調(diào)用都會(huì)導(dǎo)致后備雙端隊(duì)列上的方法調(diào)用只有一個(gè),但有一個(gè)例外。 Queue#addAll 方法被實(shí)現(xiàn)為支持雙端隊(duì)列上的一系列 Deque#addFirst 調(diào)用。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 雙端隊(duì)列中對(duì)象的類 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
deque | 雙端隊(duì)列 |
返回:
隊(duì)列
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: