Spec-Zone.ru › OpenJDK 25

Класс Collections

java.lang.Object
java.util.Collections
public final class Collections extends Object
Этот класс состоит исключительно из статических методов, которые работают с коллекциями или возвращают их. Он содержит полиморфные алгоритмы для работы с коллекциями, «обёртки», возвращающие новую коллекцию, основанную на заданной коллекции, а также несколько других вспомогательных методов.

Все методы этого класса выбрасывают NullPointerException, если переданные им коллекции или объекты классов равны null.

Документация полиморфных алгоритмов, содержащихся в этом классе, обычно включает краткое описание реализации. Такие описания следует рассматривать как примечания к реализации, а не как часть спецификации. Разработчики могут использовать другие алгоритмы при условии соблюдения самой спецификации. (Например, алгоритм, используемый sort, не обязательно должен быть сортировкой слиянием, но он должен быть устойчивым.)

Для «разрушающих» алгоритмов этого класса, то есть алгоритмов, изменяющих коллекцию, с которой они работают, указано, что они выбрасывают UnsupportedOperationException, если коллекция не поддерживает соответствующие операции изменения, например метод set. Эти алгоритмы могут выбрасывать это исключение, если вызов не оказал бы влияния на коллекцию, но не обязаны этого делать. Например, вызов метода sort для неизменяемого списка, который уже отсортирован, может как выбросить, так и не выбросить UnsupportedOperationException.

Этот класс входит в состав Java Collections Framework.

С версии:
1.2
См. также:
  • Collection
  • Set
  • List
  • Map

Краткое описание полей

Модификатор и тип Поле Описание
static final List EMPTY_LIST
Пустой список (неизменяемый).
static final Map EMPTY_MAP
Пустая карта (неизменяемая).
static final Set EMPTY_SET
Пустое множество (неизменяемое).

Краткое описание методов

Модификатор и тип Метод Описание
static <T> boolean addAll(Collection<? super T> c, T... elements)
Добавляет все указанные элементы в указанную коллекцию.
static <T> Queue<T> asLifoQueue(Deque<T> deque)
Возвращает представление Deque в виде стека (LIFO) — Queue.
static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
Выполняет двоичный поиск указанного объекта в указанном списке.
static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
Выполняет двоичный поиск указанного объекта в указанном списке.
static <E> Collection<E> checkedCollection(Collection<E> c, Class<E> type)
Возвращает динамически типобезопасное представление указанной коллекции.
static <E> List<E> checkedList(List<E> list, Class<E> type)
Возвращает динамически типобезопасное представление указанного списка.
static <K,V> Map<K,V> checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType)
Возвращает динамически типобезопасное представление указанной карты.
static <K,V> NavigableMap<K,V> checkedNavigableMap(NavigableMap<K,V> m, Class<K> keyType, Class<V> valueType)
Возвращает динамически типобезопасное представление указанной навигационной карты.
static <E> NavigableSet<E> checkedNavigableSet(NavigableSet<E> s, Class<E> type)
Возвращает динамически типобезопасное представление указанного навигационного множества.
static <E> Queue<E> checkedQueue(Queue<E> queue, Class<E> type)
Возвращает динамически типобезопасное представление указанной очереди.
static <E> Set<E> checkedSet(Set<E> s, Class<E> type)
Возвращает динамически типобезопасное представление указанного множества.
static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType)
Возвращает динамически типобезопасное представление указанной отсортированной карты.
static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s, Class<E> type)
Возвращает динамически типобезопасное представление указанного отсортированного множества.
static <T> void copy(List<? super T> dest, List<? extends T> src)
Копирует все элементы из одного списка в другой.
static boolean disjoint(Collection<?> c1, Collection<?> c2)
Возвращает true, если указанные коллекции не содержат общих элементов.
static <T> Enumeration<T> emptyEnumeration()
Возвращает перечисление, не содержащее элементов.
static <T> Iterator<T> emptyIterator()
Возвращает итератор, не содержащий элементов.
static final <T> List<T> emptyList()
Возвращает пустой список (неизменяемый).
static <T> ListIterator<T> emptyListIterator()
Возвращает итератор списка, не содержащий элементов.
static final <K,V> Map<K,V> emptyMap()
Возвращает пустую карту (неизменяемую).
static final <K,V> NavigableMap<K,V> emptyNavigableMap()
Возвращает пустую навигационную карту (неизменяемую).
static <E> NavigableSet<E> emptyNavigableSet()
Возвращает пустое навигационное множество (неизменяемое).
static final <T> Set<T> emptySet()
Возвращает пустое множество (неизменяемое).
static final <K,V> SortedMap<K,V> emptySortedMap()
Возвращает пустую отсортированную карту (неизменяемую).
static <E> SortedSet<E> emptySortedSet()
Возвращает пустое отсортированное множество (неизменяемое).
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)
Возвращает количество элементов указанной коллекции, равных заданному объекту.
static int indexOfSubList(List<?> source, List<?> target)
Возвращает начальную позицию первого вхождения указанного целевого списка в указанном исходном списке или -1, если такого вхождения нет.
static int lastIndexOfSubList(List<?> source, List<?> target)
Возвращает начальную позицию последнего вхождения указанного целевого списка в указанном исходном списке или -1, если такого вхождения нет.
static <T> ArrayList<T> list(Enumeration<T> e)
Возвращает список-массив, содержащий элементы, возвращённые указанным перечислением, в том порядке, в котором они возвращаются этим перечислением.
static <T extends Object & Comparable<? super T>>
T
max(Collection<? extends T> coll)
Возвращает максимальный элемент заданной коллекции согласно естественному порядку её элементов.
static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)
Возвращает максимальный элемент заданной коллекции согласно порядку, определяемому указанным компаратором.
static <T extends Object & Comparable<? super T>>
T
min(Collection<? extends T> coll)
Возвращает минимальный элемент заданной коллекции согласно естественному порядку её элементов.
static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp)
Возвращает минимальный элемент заданной коллекции согласно порядку, определяемому указанным компаратором.
static <T> List<T> nCopies(int n, T o)
Возвращает неизменяемый список, состоящий из n копий указанного объекта.
static <E> SequencedSet<E> newSequencedSetFromMap(SequencedMap<E,Boolean> map)
Возвращает упорядоченное множество, основанное на указанной карте.
static <E> Set<E> newSetFromMap(Map<E,Boolean> map)
Возвращает множество, основанное на указанной карте.
static <T> boolean replaceAll(List<T> list, T oldVal, T newVal)
Заменяет все вхождения одного указанного значения в списке другим значением.
static void reverse(List<?> list)
Изменяет порядок элементов указанного списка на обратный.
static <T> Comparator<T> reverseOrder()
Возвращает компаратор, задающий обратный естественный порядок для коллекции объектов, реализующих интерфейс Comparable.
static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
Возвращает компаратор, задающий порядок, обратный порядку указанного компаратора.
static void rotate(List<?> list, int distance)
Циклически сдвигает элементы указанного списка на заданное расстояние.
static void shuffle(List<?> list)
Случайным образом переставляет элементы указанного списка, используя источник случайности по умолчанию.
static void shuffle(List<?> list, Random rnd)
Случайным образом переставляет элементы указанного списка, используя указанный источник случайности.
static void shuffle(List<?> list, RandomGenerator rnd)
Случайным образом переставляет элементы указанного списка, используя указанный источник случайности.
static <T> Set<T> singleton(T o)
Возвращает неизменяемое множество, содержащее только указанный объект.
static <T> List<T> singletonList(T o)
Возвращает неизменяемый список, содержащий только указанный объект.
static <K,V> Map<K,V> singletonMap(K key, V value)
Возвращает неизменяемую карту, сопоставляющую указанному ключу только указанное значение.
static <T extends Comparable<? super T>>
void
sort(List<T> list)
Сортирует указанный список по возрастанию согласно естественному порядку его элементов.
static <T> void sort(List<T> list, Comparator<? super T> c)
Сортирует указанный список согласно порядку, определяемому указанным компаратором.
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)
Возвращает синхронизированную (потокобезопасную) навигационную карту, основанную на указанной навигационной карте.
static <T> NavigableSet<T> synchronizedNavigableSet(NavigableSet<T> s)
Возвращает синхронизированное (потокобезопасное) навигационное множество, основанное на указанном навигационном множестве.
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)
Возвращает неизменяемое представление указанной навигационной карты.
static <T> NavigableSet<T> unmodifiableNavigableSet(NavigableSet<T> s)
Возвращает неизменяемое представление указанного навигационного множества.
static <T> SequencedCollection<T> unmodifiableSequencedCollection(SequencedCollection<? extends T> c)
Возвращает неизменяемое представление указанного SequencedCollection.
static <K,V> SequencedMap<K,V> unmodifiableSequencedMap(SequencedMap<? extends K, ? extends V> m)
Возвращает неизменяемое представление указанного SequencedMap.
static <T> SequencedSet<T> unmodifiableSequencedSet(SequencedSet<? extends T> s)
Возвращает неизменяемое представление указанного SequencedSet.
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)
Возвращает неизменяемое представление указанного отсортированного множества.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

EMPTY_SET

public static final Set EMPTY_SET
Пустое множество (неизменяемое). Это множество сериализуемо.
См. также:
  • emptySet()

EMPTY_LIST

public static final List EMPTY_LIST
Пустой список (неизменяемый). Этот список сериализуем.
См. также:
  • emptyList()

EMPTY_MAP

public static final Map EMPTY_MAP
Пустая карта (неизменяемая). Эта карта сериализуема.
Начиная с версии:
1.3
См. также:
  • emptyMap()

Подробное описание методов

sort

public static <T extends Comparable<? super T>> void sort(List<T> list)
Сортирует указанный список по возрастанию в соответствии с естественным порядком его элементов. Все элементы списка должны реализовывать интерфейс Comparable. Кроме того, все элементы списка должны быть взаимно сравнимы (то есть e1.compareTo(e2) не должен выбрасывать ClassCastException для любых элементов e1 и e2 списка).

Эта сортировка гарантированно является устойчивой: равные элементы не меняют порядок в результате сортировки.

Указанный список должен допускать изменение, но не обязательно изменение размера.

Примечание по реализации:
Эта реализация делегирует выполнение методу List.sort(Comparator), используя указанный список и компаратор null.
Параметры типа:
T — класс объектов в списке
Параметры:
list — список для сортировки.
Исключения:
ClassCastException — если список содержит элементы, которые не являются взаимно сравнимыми (например, строки и целые числа).
UnsupportedOperationException — если итератор списка указанного списка не поддерживает операцию set.
IllegalArgumentException — (необязательно) если реализация обнаружит, что естественный порядок элементов списка нарушает контракт Comparable
См. также:
  • List.sort(Comparator)

sort

public static <T> void sort(List<T> list, Comparator<? super T> c)
Сортирует указанный список в соответствии с порядком, задаваемым указанным компаратором. Все элементы списка должны быть взаимно сравнимы с помощью указанного компаратора (то есть c.compare(e1, e2) не должен выбрасывать ClassCastException для любых элементов e1 и e2 списка).

Эта сортировка гарантированно является устойчивой: равные элементы не меняют порядок в результате сортировки.

Указанный список должен допускать изменение, но не обязательно изменение размера.

Примечание по реализации:
Эта реализация делегирует выполнение методу List.sort(Comparator), используя указанный список и компаратор.
Параметры типа:
T — класс объектов в списке
Параметры:
list — список для сортировки.
c — компаратор, определяющий порядок списка. Значение null означает, что следует использовать естественный порядок элементов.
Исключения:
ClassCastException — если список содержит элементы, которые не являются взаимно сравнимыми с помощью указанного компаратора.
UnsupportedOperationException — если итератор списка указанного списка не поддерживает операцию set.
IllegalArgumentException — (необязательно) если компаратор нарушает контракт Comparator
См. также:
  • List.sort(Comparator)

binarySearch

public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
Выполняет поиск указанного объекта в указанном списке с помощью алгоритма двоичного поиска. До вызова этого метода список должен быть отсортирован по возрастанию в соответствии с естественным порядком его элементов (например, методом sort(List)). Если список не отсортирован, результаты не определены. Если список содержит несколько элементов, равных указанному объекту, не гарантируется, какой из них будет найден.

Для списка с «произвольным доступом» (обеспечивающего почти постоянное время доступа к элементам по позиции) этот метод выполняется за время log(n). Если указанный список не реализует интерфейс RandomAccess и является большим, этот метод выполнит двоичный поиск на основе итератора, который требует O(n) переходов по связям и O(log n) сравнений элементов.

Параметры типа:
T — класс объектов в списке
Параметры:
list — список для поиска.
key — искомый ключ.
Возвращает:
индекс ключа поиска, если он содержится в списке; в противном случае — (-(insertion point) - 1). Точка вставки определяется как позиция, в которую ключ был бы вставлен в список: индекс первого элемента, превышающего ключ, или list.size(), если все элементы списка меньше указанного ключа. Обратите внимание: это гарантирует, что возвращаемое значение будет >= 0 тогда и только тогда, когда ключ найден.
Исключения:
ClassCastException — если список содержит элементы, которые не являются взаимно сравнимыми (например, строки и целые числа), или если ключ поиска нельзя сравнить с элементами списка.

binarySearch

public static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
Выполняет поиск указанного объекта в указанном списке с помощью алгоритма двоичного поиска. До вызова этого метода список должен быть отсортирован по возрастанию в соответствии с указанным компаратором (например, методом sort(List, Comparator)). Если список не отсортирован, результаты не определены. Если список содержит несколько элементов, равных указанному объекту, не гарантируется, какой из них будет найден.

Для списка с «произвольным доступом» (обеспечивающего почти постоянное время доступа к элементам по позиции) этот метод выполняется за время log(n). Если указанный список не реализует интерфейс RandomAccess и является большим, этот метод выполнит двоичный поиск на основе итератора, который требует O(n) переходов по связям и O(log n) сравнений элементов.

Параметры типа:
T — класс объектов в списке
Параметры:
list — список для поиска.
key — искомый ключ.
c — компаратор, задающий порядок списка. Значение null означает, что следует использовать естественный порядок элементов.
Возвращает:
индекс ключа поиска, если он содержится в списке; в противном случае — (-(insertion point) - 1). Точка вставки определяется как позиция, в которую ключ был бы вставлен в список: индекс первого элемента, превышающего ключ, или list.size(), если все элементы списка меньше указанного ключа. Обратите внимание: это гарантирует, что возвращаемое значение будет >= 0 тогда и только тогда, когда ключ найден.
Исключения:
ClassCastException — если список содержит элементы, которые не являются взаимно сравнимыми с помощью указанного компаратора, или если ключ поиска нельзя сравнить с элементами списка с помощью этого компаратора.

reverse

public static void reverse(List<?> list)
Изменяет порядок элементов указанного списка на обратный.

Этот метод выполняется за линейное время.

Примечание к API:
Этот метод изменяет указанный список на месте. Чтобы получить представление списка в обратном порядке без изменения самого списка, используйте метод List.reversed.
Параметры:
list — список, порядок элементов которого необходимо изменить на обратный.
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.
См. также:
  • List.reversed

shuffle

public static void shuffle(List<?> list)
Случайным образом переставляет элементы указанного списка, используя источник случайности по умолчанию. Все перестановки имеют приблизительно одинаковую вероятность.

Оговорка «приблизительно» используется в предыдущем описании, поскольку источник случайности по умолчанию является лишь приблизительно несмещённым источником независимо выбранных битов. Если бы он был идеальным источником случайно выбранных битов, алгоритм выбирал бы перестановки с абсолютной равномерностью.

Эта реализация проходит по списку в обратном направлении, от последнего элемента до второго, каждый раз меняя местами случайно выбранный элемент с элементом в «текущей позиции». Элементы случайным образом выбираются из части списка от первого элемента до текущей позиции включительно.

Требования к реализации:
Этот метод выполняется за линейное время. Если указанный список не реализует интерфейс RandomAccess и является большим, эта реализация перед перемешиванием копирует указанный список в массив, а затем копирует перемешанный массив обратно в список. Это позволяет избежать квадратичного времени выполнения, которое потребовалось бы при перемешивании списка с «последовательным доступом» на месте.
Параметры:
list — список для перемешивания.
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.

shuffle

public static void shuffle(List<?> list, Random rnd)
Случайным образом переставляет элементы указанного списка, используя указанный источник случайности.

Этот метод эквивалентен shuffle(List, RandomGenerator) и существует для обратной совместимости. Предпочтительно использовать метод shuffle(List, RandomGenerator), поскольку он не ограничен генераторами случайных чисел, расширяющими класс Random.

Параметры:
list — список для перемешивания.
rnd — источник случайности для перемешивания списка.
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.

shuffle

public static void shuffle(List<?> list, RandomGenerator rnd)
Случайным образом переставляет элементы указанного списка, используя указанный источник случайности. При условии, что источник случайности является беспристрастным, все перестановки имеют одинаковую вероятность.

Эта реализация проходит по списку в обратном направлении, от последнего элемента до второго, каждый раз меняя местами случайно выбранный элемент с элементом в «текущей позиции». Элементы случайным образом выбираются из части списка от первого элемента до текущей позиции включительно.

Требования к реализации:
Этот метод выполняется за линейное время. Если указанный список не реализует интерфейс RandomAccess и является большим, эта реализация перед перемешиванием копирует указанный список в массив, а затем копирует перемешанный массив обратно в список. Это позволяет избежать квадратичного времени выполнения, которое потребовалось бы при перемешивании списка с «последовательным доступом» на месте.
Параметры:
list — список для перемешивания.
rnd — источник случайности для перемешивания списка.
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.
Начиная с версии:
21

swap

public static void swap(List<?> list, int i, int j)
Меняет местами элементы в указанных позициях указанного списка. (Если указанные позиции совпадают, вызов этого метода не изменяет список.)
Параметры:
list — список, в котором необходимо поменять элементы местами.
i — индекс одного из элементов для обмена.
j — индекс другого элемента для обмена.
Исключения:
IndexOutOfBoundsException — если i или j находится вне допустимого диапазона (i < 0 || i >= list.size() || j < 0 || j >= list.size()).
Начиная с версии:
1.4

fill

public static <T> void fill(List<? super T> list, T obj)
Заменяет все элементы указанного списка заданным элементом.

Этот метод выполняется за линейное время.

Параметры типа:
T — класс объектов в списке
Параметры:
list — список, который необходимо заполнить заданным элементом.
obj — элемент, которым необходимо заполнить указанный список.
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.

copy

public static <T> void copy(List<? super T> dest, List<? extends T> src)
Копирует все элементы из одного списка в другой. После выполнения операции индекс каждого скопированного элемента в целевом списке будет совпадать с его индексом в исходном списке. Размер целевого списка должен быть не меньше размера исходного списка. Если он больше, оставшиеся элементы целевого списка не изменяются.

Этот метод выполняется за линейное время.

Параметры типа:
T — класс объектов в списках
Параметры:
dest — целевой список.
src — исходный список.
Исключения:
IndexOutOfBoundsException — если целевой список слишком мал, чтобы вместить весь исходный список.
UnsupportedOperationException — если итератор целевого списка не поддерживает операцию set.

min

public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
Возвращает минимальный элемент заданной коллекции в соответствии с естественным порядком её элементов. Все элементы коллекции должны реализовывать интерфейс Comparable. Кроме того, все элементы коллекции должны быть взаимно сравнимы (то есть e1.compareTo(e2) не должен выбрасывать ClassCastException для любых элементов e1 и e2 коллекции).

Этот метод перебирает всю коллекцию, поэтому время его выполнения пропорционально размеру коллекции.

Параметры типа:
T — класс объектов в коллекции
Параметры:
coll — коллекция, минимальный элемент которой необходимо определить.
Возвращает:
минимальный элемент заданной коллекции в соответствии с естественным порядком её элементов.
Исключения:
ClassCastException — если коллекция содержит элементы, которые не являются взаимно сравнимыми (например, строки и целые числа).
NoSuchElementException — если коллекция пуста.
См. также:
  • Comparable

min

public static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp)
Возвращает минимальный элемент заданной коллекции в соответствии с порядком, задаваемым указанным компаратором. Все элементы коллекции должны быть взаимно сравнимы с помощью указанного компаратора (то есть comp.compare(e1, e2) не должен выбрасывать ClassCastException для любых элементов e1 и e2 коллекции).

Этот метод перебирает всю коллекцию, поэтому время его выполнения пропорционально размеру коллекции.

Параметры типа:
T — класс объектов в коллекции
Параметры:
coll — коллекция, минимальный элемент которой необходимо определить.
comp — компаратор для определения минимального элемента. Значение null означает, что следует использовать естественный порядок элементов.
Возвращает:
минимальный элемент заданной коллекции в соответствии с указанным компаратором.
Исключения:
ClassCastException — если коллекция содержит элементы, которые не являются взаимно сравнимыми с помощью указанного компаратора.
NoSuchElementException — если коллекция пуста.
См. также:
  • Comparable

max

public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
Возвращает максимальный элемент заданной коллекции в соответствии с естественным порядком её элементов. Все элементы коллекции должны реализовывать интерфейс Comparable. Кроме того, все элементы коллекции должны быть взаимно сравнимы (то есть e1.compareTo(e2) не должен выбрасывать ClassCastException для любых элементов e1 и e2 коллекции).

Этот метод перебирает всю коллекцию, поэтому время его выполнения пропорционально размеру коллекции.

Параметры типа:
T — класс объектов в коллекции
Параметры:
coll — коллекция, максимальный элемент которой необходимо определить.
Возвращает:
максимальный элемент заданной коллекции в соответствии с естественным порядком её элементов.
Исключения:
ClassCastException — если коллекция содержит элементы, которые не являются взаимно сравнимыми (например, строки и целые числа).
NoSuchElementException — если коллекция пуста.
См. также:
  • Comparable

max

public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)
Возвращает максимальный элемент заданной коллекции в соответствии с порядком, задаваемым указанным компаратором. Все элементы коллекции должны быть взаимно сравнимы с помощью указанного компаратора (то есть comp.compare(e1, e2) не должен выбрасывать ClassCastException для любых элементов e1 и e2 коллекции).

Этот метод перебирает всю коллекцию, поэтому время его выполнения пропорционально размеру коллекции.

Параметры типа:
T — класс объектов в коллекции
Параметры:
coll — коллекция, максимальный элемент которой необходимо определить.
comp — компаратор для определения максимального элемента. Значение null означает, что следует использовать естественный порядок элементов.
Возвращает:
максимальный элемент заданной коллекции в соответствии с указанным компаратором.
Исключения:
ClassCastException — если коллекция содержит элементы, которые не являются взаимно сравнимыми с помощью указанного компаратора.
NoSuchElementException — если коллекция пуста.
См. также:
  • Comparable

rotate

public static void rotate(List<?> list, int distance)
Циклически сдвигает элементы указанного списка на заданное расстояние. После вызова этого метода элемент с индексом i будет элементом, ранее находившимся по индексу (i - distance) mod list.size(), для всех значений i от 0 до list.size()-1 включительно. (Этот метод не изменяет размер списка.)

Например, предположим, что list состоит из [t, a, n, k, s]. После вызова Collections.rotate(list, 1) (или Collections.rotate(list, -4)) list будет состоять из [s, t, a, n, k].

Обратите внимание, что этот метод можно эффективно применять к подспискам, чтобы переместить один или несколько элементов внутри списка, сохранив порядок остальных элементов. Например, следующий шаблон перемещает элемент с индексом j вперёд на позицию k (которая должна быть больше или равна j):

    Collections.rotate(list.subList(j, k+1), -1);
Для наглядности предположим, что list состоит из [a, b, c, d, e]. Чтобы переместить элемент с индексом 1 (b) вперёд на две позиции, выполните следующий вызов:
    Collections.rotate(l.subList(1, 4), -1);
Полученный список — [a, c, d, b, e].

Чтобы переместить вперёд более одного элемента, увеличьте абсолютное значение расстояния сдвига. Для перемещения элементов назад используйте положительное расстояние сдвига.

Если указанный список невелик или реализует интерфейс RandomAccess, эта реализация перемещает первый элемент в нужное место, а затем последовательно перемещает вытесненный элемент в нужное место, пока какой-либо вытесненный элемент не будет перемещён на место первого. При необходимости процесс повторяется для второго и последующих элементов до завершения сдвига. Если указанный список велик и не реализует интерфейс RandomAccess, эта реализация делит список на два представления подсписков по индексу -distance mod size. Затем метод reverse(List) вызывается для каждого представления подсписка, а затем для всего списка. Более подробное описание обоих алгоритмов см. в разделе 2.3 книги Джона Бентли Programming Pearls (Addison-Wesley, 1986).

Параметры:
list — список для циклического сдвига.
distance — расстояние циклического сдвига списка. Ограничений на это значение нет: оно может быть нулевым, отрицательным или превышать list.size().
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.
Начиная с версии:
1.4

replaceAll

public static <T> boolean replaceAll(List<T> list, T oldVal, T newVal)
Заменяет все вхождения одного указанного значения в списке другим. Точнее, заменяет на newVal каждый элемент e в list, для которого (oldVal==null ? e==null : oldVal.equals(e)). (Этот метод не изменяет размер списка.)
Параметры типа:
T — класс объектов в списке
Параметры:
list — список, в котором выполняется замена.
oldVal — заменяемое старое значение.
newVal — новое значение, которым заменяется oldVal.
Возвращает:
true, если list содержал один или несколько элементов e, для которых (oldVal==null ? e==null : oldVal.equals(e)).
Исключения:
UnsupportedOperationException — если указанный список или его итератор не поддерживает операцию set.
Начиная с версии:
1.4

indexOfSubList

public static int indexOfSubList(List<?> source, List<?> target)
Возвращает начальную позицию первого вхождения указанного целевого списка в указанном исходном списке или -1, если такое вхождение отсутствует. Точнее, возвращает наименьший индекс i, для которого source.subList(i, i+target.size()).equals(target), или -1, если такого индекса нет. (Возвращает -1, если target.size() > source.size())

В этой реализации используется метод «полного перебора»: исходный список просматривается в поисках совпадения с целевым списком в каждой позиции по очереди.

Параметры:
source — список, в котором выполняется поиск первого вхождения target.
target — список, который необходимо найти как подсписок source.
Возвращает:
начальную позицию первого вхождения указанного целевого списка в указанном исходном списке или -1, если такое вхождение отсутствует.
Начиная с версии:
1.4

lastIndexOfSubList

public static int lastIndexOfSubList(List<?> source, List<?> target)
Возвращает начальную позицию последнего вхождения указанного целевого списка в указанном исходном списке или -1, если такое вхождение отсутствует. Точнее, возвращает наибольший индекс i, для которого source.subList(i, i+target.size()).equals(target), или -1, если такого индекса нет. (Возвращает -1, если target.size() > source.size())

В этой реализации используется метод «полного перебора»: исходный список просматривается в поисках совпадения с целевым списком в каждой позиции по очереди.

Параметры:
source — список, в котором выполняется поиск последнего вхождения target.
target — список, который необходимо найти как подсписок source.
Возвращает:
начальную позицию последнего вхождения указанного целевого списка в указанном исходном списке или -1, если такое вхождение отсутствует.
Начиная с версии:
1.4

unmodifiableCollection

public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
Возвращает неизменяемое представление указанной коллекции. Операции чтения над возвращаемой коллекцией выполняются непосредственно с указанной коллекцией, а попытки изменить возвращаемую коллекцию — напрямую или через её итератор — приводят к UnsupportedOperationException.

Возвращаемая коллекция не передаёт операции hashCode и equals базовой коллекции, а полагается на методы equals и hashCode класса Object. Это необходимо для сохранения контрактов этих операций в том случае, если базовая коллекция является множеством или списком.

Возвращаемая коллекция будет сериализуемой, если указанная коллекция сериализуема.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов в коллекции
Параметры:
c — коллекция, для которой требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанной коллекции.

unmodifiableSequencedCollection

public static <T> SequencedCollection<T> unmodifiableSequencedCollection(SequencedCollection<? extends T> c)
Возвращает неизменяемое представление указанной SequencedCollection. Операции чтения над возвращаемой коллекцией выполняются непосредственно с указанной коллекцией, а попытки изменить возвращаемую коллекцию — напрямую или через её итератор — приводят к UnsupportedOperationException.

Возвращаемая коллекция не передаёт операции hashCode и equals базовой коллекции, а полагается на методы equals и hashCode класса Object. Это необходимо для сохранения контрактов этих операций в том случае, если базовая коллекция является множеством или списком.

Возвращаемая коллекция будет сериализуемой, если указанная коллекция сериализуема.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов в коллекции
Параметры:
c — коллекция, для которой требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанной коллекции.
С версии:
21

unmodifiableSet

public static <T> Set<T> unmodifiableSet(Set<? extends T> s)
Возвращает неизменяемое представление указанного множества. Операции чтения над возвращаемым множеством выполняются непосредственно с указанным множеством, а попытки изменить возвращаемое множество — напрямую или через его итератор — приводят к UnsupportedOperationException.

Возвращаемое множество будет сериализуемым, если указанное множество сериализуемо.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов во множестве
Параметры:
s — множество, для которого требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанного множества.

unmodifiableSequencedSet

public static <T> SequencedSet<T> unmodifiableSequencedSet(SequencedSet<? extends T> s)
Возвращает неизменяемое представление указанного SequencedSet. Операции чтения над возвращаемым множеством выполняются непосредственно с указанным множеством, а попытки изменить возвращаемое множество — напрямую или через его итератор — приводят к UnsupportedOperationException.

Возвращаемое множество будет сериализуемым, если указанное множество сериализуемо.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов во множестве
Параметры:
s — множество, для которого требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанного упорядоченного множества.
С версии:
21

unmodifiableSortedSet

public static <T> SortedSet<T> unmodifiableSortedSet(SortedSet<T> s)
Возвращает неизменяемое представление указанного отсортированного множества. Операции чтения над возвращаемым отсортированным множеством выполняются непосредственно с указанным отсортированным множеством. Попытки изменить возвращаемое отсортированное множество — напрямую, через его итератор или через представления subSet, headSet или tailSet — приводят к UnsupportedOperationException.

Возвращаемое отсортированное множество будет сериализуемым, если указанное отсортированное множество сериализуемо.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов во множестве
Параметры:
s — отсортированное множество, для которого требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанного отсортированного множества.

unmodifiableNavigableSet

public static <T> NavigableSet<T> unmodifiableNavigableSet(NavigableSet<T> s)
Возвращает неизменяемое представление указанного навигационного множества. Операции чтения над возвращаемым навигационным множеством выполняются непосредственно с указанным навигационным множеством. Попытки изменить возвращаемое навигационное множество — напрямую, через его итератор или через представления subSet, headSet или tailSet — приводят к UnsupportedOperationException.

Возвращаемое навигационное множество будет сериализуемым, если указанное навигационное множество сериализуемо.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов во множестве
Параметры:
s — навигационное множество, для которого требуется вернуть неизменяемое представление
Возвращает:
неизменяемое представление указанного навигационного множества
С версии:
1.8

unmodifiableList

public static <T> List<T> unmodifiableList(List<? extends T> list)
Возвращает неизменяемое представление указанного списка. Операции чтения над возвращаемым списком выполняются непосредственно с указанным списком, а попытки изменить возвращаемый список — напрямую или через его итератор — приводят к UnsupportedOperationException.

Возвращаемый список будет сериализуемым, если указанный список сериализуем. Аналогично, возвращаемый список будет реализовывать RandomAccess, если это делает указанный список.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
T — класс объектов в списке
Параметры:
list — список, для которого требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанного списка.

unmodifiableMap

public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K, ? extends V> m)
Возвращает неизменяемое представление указанной карты. Операции чтения над возвращаемой картой выполняются непосредственно с указанной картой, а попытки изменить возвращаемую карту — напрямую или через её представления-коллекции — приводят к UnsupportedOperationException.

Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — карта, для которой требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанной карты.

unmodifiableSequencedMap

public static <K,V> SequencedMap<K,V> unmodifiableSequencedMap(SequencedMap<? extends K, ? extends V> m)
Возвращает неизменяемое представление указанной SequencedMap. Операции чтения над возвращаемой картой выполняются непосредственно с указанной картой, а попытки изменить возвращаемую карту — напрямую или через её представления-коллекции — приводят к UnsupportedOperationException.

Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — карта, для которой требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанной карты.
С версии:
21

unmodifiableSortedMap

public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K, ? extends V> m)
Возвращает неизменяемое представление указанной отсортированной карты. Операции чтения над возвращаемой отсортированной картой выполняются непосредственно с указанной отсортированной картой. Попытки изменить возвращаемую отсортированную карту — напрямую, через её представления-коллекции или через представления subMap, headMap или tailMap — приводят к UnsupportedOperationException.

Возвращаемая отсортированная карта будет сериализуемой, если указанная отсортированная карта сериализуема.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — отсортированная карта, для которой требуется вернуть неизменяемое представление.
Возвращает:
неизменяемое представление указанной отсортированной карты.

unmodifiableNavigableMap

public static <K,V> NavigableMap<K,V> unmodifiableNavigableMap(NavigableMap<K, ? extends V> m)
Возвращает неизменяемое представление указанной навигационной карты. Операции чтения над возвращаемой навигационной картой выполняются непосредственно с указанной навигационной картой. Попытки изменить возвращаемую навигационную карту — напрямую, через её представления-коллекции или через представления subMap, headMap или tailMap — приводят к UnsupportedOperationException.

Возвращаемая навигационная карта будет сериализуемой, если указанная навигационная карта сериализуема.

Примечание по реализации:
Этот метод может вернуть свой аргумент, если он уже является неизменяемым.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — навигационная карта, для которой требуется вернуть неизменяемое представление
Возвращает:
неизменяемое представление указанной навигационной карты
С версии:
1.8

synchronizedCollection

public static <T> Collection<T> synchronizedCollection(Collection<T> c)
Возвращает синхронизированную (потокобезопасную) коллекцию, основанную на указанной коллекции. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовой коллекции осуществлялся через возвращаемую коллекцию.

При обходе возвращаемой коллекции с помощью 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 базовой коллекции, а полагается на методы equals и hashCode класса Object. Это необходимо для сохранения контрактов этих операций в том случае, если базовая коллекция является множеством или списком.

Возвращаемая коллекция будет сериализуемой, если указанная коллекция сериализуема.

Параметры типа:
T — класс объектов в коллекции
Параметры:
c — коллекция, которую требуется «обернуть» в синхронизированную коллекцию.
Возвращает:
синхронизированное представление указанной коллекции.

synchronizedSet

public static <T> Set<T> synchronizedSet(Set<T> s)
Возвращает синхронизированное (потокобезопасное) множество, основанное на указанном множестве. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовому множеству осуществлялся через возвращаемое множество.

При обходе возвращаемой коллекции с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к ней:

 Set s = Collections.synchronizedSet(new HashSet());
     ...
 synchronized (s) {
     Iterator i = s.iterator(); // Must be in the synchronized block
     while (i.hasNext())
         foo(i.next());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемое множество будет сериализуемым, если указанное множество сериализуемо.

Параметры типа:
T — класс объектов во множестве
Параметры:
s — множество, которое требуется «обернуть» в синхронизированное множество.
Возвращает:
синхронизированное представление указанного множества.

synchronizedSortedSet

public static <T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s)
Возвращает синхронизированное (потокобезопасное) отсортированное множество, основанное на указанном отсортированном множестве. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовому отсортированному множеству осуществлялся через возвращаемое отсортированное множество (или его представления).

При обходе возвращаемого отсортированного множества или любых его представлений subSet, headSet или tailSet с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к нему:

 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());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемое отсортированное множество будет сериализуемым, если указанное отсортированное множество сериализуемо.

Параметры типа:
T — класс объектов во множестве
Параметры:
s — отсортированное множество, которое требуется «обернуть» в синхронизированное отсортированное множество.
Возвращает:
синхронизированное представление указанного отсортированного множества.

synchronizedNavigableSet

public static <T> NavigableSet<T> synchronizedNavigableSet(NavigableSet<T> s)
Возвращает синхронизированное (потокобезопасное) навигационное множество, основанное на указанном навигационном множестве. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовому навигационному множеству осуществлялся через возвращаемое навигационное множество (или его представления).

При обходе возвращаемого навигационного множества или любых его представлений subSet, headSet или tailSet с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к нему:

 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());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемое навигационное множество будет сериализуемым, если указанное навигационное множество сериализуемо.

Параметры типа:
T — класс объектов во множестве
Параметры:
s — навигационное множество, которое требуется «обернуть» в синхронизированное навигационное множество
Возвращает:
синхронизированное представление указанного навигационного множества
С версии:
1.8

synchronizedList

public static <T> List<T> synchronizedList(List<T> list)
Возвращает синхронизированный (потокобезопасный) список, основанный на указанном списке. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовому списку осуществлялся через возвращаемый список.

При обходе возвращаемого списка с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к нему:

 List list = Collections.synchronizedList(new ArrayList());
     ...
 synchronized (list) {
     Iterator i = list.iterator(); // Must be in synchronized block
     while (i.hasNext())
         foo(i.next());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемый список будет сериализуемым, если указанный список сериализуем.

Параметры типа:
T — класс объектов в списке
Параметры:
list — список, который требуется «обернуть» в синхронизированный список.
Возвращает:
синхронизированное представление указанного списка.

synchronizedMap

public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m)
Возвращает синхронизированную (потокобезопасную) карту, основанную на указанной карте. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовой карте осуществлялся через возвращаемую карту.

При обходе любых представлений-коллекций возвращаемой карты с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к карте:

 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());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.

Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — карта, которую требуется «обернуть» в синхронизированную карту.
Возвращает:
синхронизированное представление указанной карты.

synchronizedSortedMap

public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m)
Возвращает синхронизированную (потокобезопасную) отсортированную карту, основанную на указанной отсортированной карте. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовой отсортированной карте осуществлялся через возвращаемую отсортированную карту (или её представления).

При обходе любых представлений-коллекций возвращаемой отсортированной карты или представлений-коллекций любой из её карт-представлений subMap, headMap или tailMap с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к карте:

 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 = s2.iterator(); // Must be in synchronized block
     while (i.hasNext())
         foo(i.next());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемая отсортированная карта будет сериализуемой, если указанная отсортированная карта сериализуема.

Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — отсортированная карта, которую требуется «обернуть» в синхронизированную отсортированную карту.
Возвращает:
синхронизированное представление указанной отсортированной карты.

synchronizedNavigableMap

public static <K,V> NavigableMap<K,V> synchronizedNavigableMap(NavigableMap<K,V> m)
Возвращает синхронизированную (потокобезопасную) навигационную карту, основанную на указанной навигационной карте. Для гарантии последовательного доступа крайне важно, чтобы весь доступ к базовой навигационной карте осуществлялся через возвращаемую навигационную карту (или её представления).

При обходе любых представлений-коллекций возвращаемой навигационной карты или представлений-коллекций любой из её карт-представлений subMap, headMap или tailMap с помощью Iterator, Spliterator или Stream пользователь должен вручную синхронизировать доступ к карте:

 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 = s2.iterator(); // Must be in synchronized block
     while (i.hasNext())
         foo(i.next());
 }
Несоблюдение этой рекомендации может привести к недетерминированному поведению.

Возвращаемая навигационная карта будет сериализуемой, если указанная навигационная карта сериализуема.

Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — навигационная карта, которую требуется «обернуть» в синхронизированную навигационную карту
Возвращает:
синхронизированное представление указанной навигационной карты.
С версии:
1.8

checkedCollection

public static <E> Collection<E> checkedCollection(Collection<E> c, Class<E> type)
Возвращает представление указанной коллекции с динамической проверкой типов. Любая попытка вставить элемент неверного типа немедленно приводит к ClassCastException. Если предположить, что до создания представления с динамической проверкой типов коллекция не содержит элементов неверного типа и что весь последующий доступ к коллекции осуществляется через это представление, то гарантируется, что коллекция не сможет содержать элемент неверного типа.

Механизм обобщений языка обеспечивает проверку типов во время компиляции (статическую проверку), однако его можно обойти с помощью непроверяемых приведений типов. Обычно это не проблема, поскольку компилятор выдаёт предупреждения для всех таких непроверяемых операций. Однако бывают случаи, когда одной лишь статической проверки типов недостаточно. Например, предположим, что коллекция передаётся сторонней библиотеке, и крайне важно, чтобы код библиотеки не повредил коллекцию, вставив элемент неверного типа.

Ещё одно применение представлений с динамической проверкой типов — отладка. Предположим, программа завершается с ошибкой ClassCastException, указывая на то, что в параметризованную коллекцию был добавлен элемент неверного типа. К сожалению, исключение может возникнуть в любой момент после вставки ошибочного элемента, поэтому обычно оно практически не помогает определить истинный источник проблемы. Если проблему можно воспроизвести, её источник можно быстро определить, временно изменив программу и обернув коллекцию в представление с динамической проверкой типов. Например, это объявление:

    Collection<String> c = new HashSet<>();
можно временно заменить следующим:
    Collection<String> c = Collections.checkedCollection(
        new HashSet<>(), String.class);
При повторном запуске программы ошибка возникнет в месте вставки в коллекцию элемента неверного типа, что позволит однозначно определить источник проблемы. После её устранения изменённое объявление можно вернуть к исходному.

Возвращаемая коллекция не передаёт операции hashCode и equals базовой коллекции, а полагается на методы equals и hashCode класса Object. Это необходимо для сохранения контрактов этих операций в том случае, если базовая коллекция является множеством или списком.

Возвращаемая коллекция будет сериализуемой, если указанная коллекция сериализуема.

Поскольку null считается значением любого ссылочного типа, возвращаемая коллекция позволяет вставлять элементы null, если это допускает базовая коллекция.

Параметры типа:
E — класс объектов в коллекции
Параметры:
c — коллекция, для которой требуется вернуть представление с динамической проверкой типов
type — тип элемента, который разрешено хранить в c
Возвращает:
представление указанной коллекции с динамической проверкой типов
С версии:
1.5

checkedQueue

public static <E> Queue<E> checkedQueue(Queue<E> queue, Class<E> type)
Возвращает динамически типобезопасное представление указанной очереди. Любая попытка вставить элемент неправильного типа немедленно приведет к ClassCastException. Если предположить, что до создания динамически типобезопасного представления очередь не содержит элементов неправильного типа и что после этого весь доступ к очереди осуществляется через это представление, то гарантируется, что очередь не может содержать элемент неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемая очередь будет сериализуемой, если указанная очередь сериализуема.

Поскольку null считается значением любого ссылочного типа, возвращаемая очередь допускает вставку элементов null, если это допускает исходная очередь.

Параметры типа:
E — класс объектов в очереди
Параметры:
queue — очередь, для которой возвращается динамически типобезопасное представление
type — тип элемента, который может содержать queue
Возвращает:
динамически типобезопасное представление указанной очереди
Начиная с:
1.8

checkedSet

public static <E> Set<E> checkedSet(Set<E> s, Class<E> type)
Возвращает динамически типобезопасное представление указанного множества. Любая попытка вставить элемент неправильного типа немедленно приведет к ClassCastException. Если предположить, что до создания динамически типобезопасного представления множество не содержит элементов неправильного типа и что после этого весь доступ к множеству осуществляется через это представление, то гарантируется, что множество не может содержать элемент неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемое множество будет сериализуемым, если указанное множество сериализуемо.

Поскольку null считается значением любого ссылочного типа, возвращаемое множество допускает вставку элементов null, если это допускает исходное множество.

Параметры типа:
E — класс объектов в множестве
Параметры:
s — множество, для которого возвращается динамически типобезопасное представление
type — тип элемента, который может содержать s
Возвращает:
динамически типобезопасное представление указанного множества
Начиная с:
1.5

checkedSortedSet

public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s, Class<E> type)
Возвращает динамически типобезопасное представление указанного отсортированного множества. Любая попытка вставить элемент неправильного типа немедленно приведет к ClassCastException. Если предположить, что до создания динамически типобезопасного представления отсортированное множество не содержит элементов неправильного типа и что после этого весь доступ к отсортированному множеству осуществляется через это представление, то гарантируется, что отсортированное множество не может содержать элемент неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемое отсортированное множество будет сериализуемым, если указанное отсортированное множество сериализуемо.

Поскольку null считается значением любого ссылочного типа, возвращаемое отсортированное множество допускает вставку элементов null, если это допускает исходное отсортированное множество.

Параметры типа:
E — класс объектов в множестве
Параметры:
s — отсортированное множество, для которого возвращается динамически типобезопасное представление
type — тип элемента, который может содержать s
Возвращает:
динамически типобезопасное представление указанного отсортированного множества
Начиная с:
1.5

checkedNavigableSet

public static <E> NavigableSet<E> checkedNavigableSet(NavigableSet<E> s, Class<E> type)
Возвращает динамически типобезопасное представление указанного навигационного множества. Любая попытка вставить элемент неправильного типа немедленно приведет к ClassCastException. Если предположить, что до создания динамически типобезопасного представления навигационное множество не содержит элементов неправильного типа и что после этого весь доступ к навигационному множеству осуществляется через это представление, то гарантируется, что навигационное множество не может содержать элемент неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемое навигационное множество будет сериализуемым, если указанное навигационное множество сериализуемо.

Поскольку null считается значением любого ссылочного типа, возвращаемое навигационное множество допускает вставку элементов null, если это допускает исходное отсортированное множество.

Параметры типа:
E — класс объектов в множестве
Параметры:
s — навигационное множество, для которого возвращается динамически типобезопасное представление
type — тип элемента, который может содержать s
Возвращает:
динамически типобезопасное представление указанного навигационного множества
Начиная с:
1.8

checkedList

public static <E> List<E> checkedList(List<E> list, Class<E> type)
Возвращает динамически типобезопасное представление указанного списка. Любая попытка вставить элемент неправильного типа немедленно приведет к ClassCastException. Если предположить, что до создания динамически типобезопасного представления список не содержит элементов неправильного типа и что после этого весь доступ к списку осуществляется через это представление, то гарантируется, что список не может содержать элемент неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемый список будет сериализуемым, если указанный список сериализуем.

Поскольку null считается значением любого ссылочного типа, возвращаемый список допускает вставку элементов null, если это допускает исходный список.

Параметры типа:
E — класс объектов в списке
Параметры:
list — список, для которого возвращается динамически типобезопасное представление
type — тип элемента, который может содержать list
Возвращает:
динамически типобезопасное представление указанного списка
Начиная с:
1.5

checkedMap

public static <K,V> Map<K,V> checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType)
Возвращает динамически типобезопасное представление указанной карты. Любая попытка добавить соответствие с ключом или значением неправильного типа немедленно приведет к ClassCastException. Аналогично, любая попытка изменить значение, связанное в данный момент с ключом, немедленно приведет к ClassCastException, независимо от того, предпринимается ли изменение непосредственно через саму карту или через экземпляр Map.Entry, полученный из представления entry set карты.

Если предположить, что до создания динамически типобезопасного представления карта не содержит ключей или значений неправильного типа и что после этого весь доступ к карте осуществляется через это представление (или одно из его представлений-коллекций), то гарантируется, что карта не может содержать ключ или значение неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.

Поскольку null считается значением любого ссылочного типа, возвращаемая карта допускает вставку ключей или значений null, если это допускает исходная карта.

Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — карта, для которой возвращается динамически типобезопасное представление
keyType — тип ключа, который может содержать m
valueType — тип значения, которое может содержать m
Возвращает:
динамически типобезопасное представление указанной карты
Начиная с:
1.5

checkedSortedMap

public static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType)
Возвращает динамически типобезопасное представление указанной отсортированной карты. Любая попытка добавить соответствие с ключом или значением неправильного типа немедленно приведет к ClassCastException. Аналогично, любая попытка изменить значение, связанное в данный момент с ключом, немедленно приведет к ClassCastException, независимо от того, предпринимается ли изменение непосредственно через саму карту или через экземпляр Map.Entry, полученный из представления entry set карты.

Если предположить, что карта не содержит ключей или значений неправильного типа до создания динамически типобезопасного представления и что после этого весь доступ к карте осуществляется через это представление (или одно из его представлений-коллекций), то гарантируется, что карта не может содержать ключ или значение неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.

Поскольку null считается значением любого ссылочного типа, возвращаемая карта допускает вставку ключей или значений null, если это допускает исходная карта.

Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
m — карта, для которой возвращается динамически типобезопасное представление
keyType — тип ключа, который может содержать m
valueType — тип значения, которое может содержать m
Возвращает:
динамически типобезопасное представление указанной карты
Начиная с:
1.5

checkedNavigableMap

public static <K,V> NavigableMap<K,V> checkedNavigableMap(NavigableMap<K,V> m, Class<K> keyType, Class<V> valueType)
Возвращает динамически типобезопасное представление указанной навигационной карты. Любая попытка добавить соответствие с ключом или значением неправильного типа немедленно приведет к ClassCastException. Аналогично, любая попытка изменить значение, связанное в данный момент с ключом, немедленно приведет к ClassCastException, независимо от того, предпринимается ли изменение непосредственно через саму карту или через экземпляр Map.Entry, полученный из представления entry set карты.

Если предположить, что карта не содержит ключей или значений неправильного типа до создания динамически типобезопасного представления и что после этого весь доступ к карте осуществляется через это представление (или одно из его представлений-коллекций), то гарантируется, что карта не может содержать ключ или значение неправильного типа.

Обсуждение использования динамически типобезопасных представлений можно найти в документации к методу checkedCollection.

Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.

Поскольку null считается значением любого ссылочного типа, возвращаемая карта допускает вставку ключей или значений null, если это допускает исходная карта.

Параметры типа:
K — тип ключей карты
V — тип значений карты
Параметры:
m — карта, для которой возвращается динамически типобезопасное представление
keyType — тип ключа, который может содержать m
valueType — тип значения, которое может содержать m
Возвращает:
динамически типобезопасное представление указанной карты
Начиная с:
1.8

emptyIterator

public static <T> Iterator<T> emptyIterator()
Возвращает итератор без элементов. Точнее:
  • hasNext всегда возвращает false.
  • next всегда выбрасывает NoSuchElementException.
  • remove всегда выбрасывает IllegalStateException.

Реализациям этого метода разрешается, но не требуется, возвращать один и тот же объект при нескольких вызовах.

Параметры типа:
T — тип элементов итератора, если бы они были
Возвращает:
пустой итератор
Начиная с:
1.7

emptyListIterator

public static <T> ListIterator<T> emptyListIterator()
Возвращает итератор списка без элементов. Точнее:
  • hasNext и hasPrevious всегда возвращают false.
  • next и previous всегда выбрасывают NoSuchElementException.
  • remove и set всегда выбрасывают IllegalStateException.
  • add всегда выбрасывает UnsupportedOperationException.
  • nextIndex всегда возвращает 0.
  • previousIndex всегда возвращает -1.

Реализациям этого метода разрешается, но не требуется, возвращать один и тот же объект при нескольких вызовах.

Параметры типа:
T — тип элементов итератора, если бы они были
Возвращает:
пустой итератор списка
Начиная с:
1.7

emptyEnumeration

public static <T> Enumeration<T> emptyEnumeration()
Возвращает перечисление без элементов. Точнее:
  • hasMoreElements всегда возвращает false.
  • nextElement всегда выбрасывает NoSuchElementException.

Реализациям этого метода разрешается, но не требуется, возвращать один и тот же объект при нескольких вызовах.

Параметры типа:
T — класс объектов в перечислении
Возвращает:
пустое перечисление
Начиная с:
1.7

emptySet

public static final <T> Set<T> emptySet()
Возвращает пустое множество (неизменяемое). Это множество сериализуемо. В отличие от одноименного поля, этот метод является параметризованным.

В этом примере показан безопасный с точки зрения типов способ получить пустое множество:

    Set<String> s = Collections.emptySet();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект Set при каждом вызове. Вероятно, стоимость использования этого метода будет сопоставима со стоимостью использования одноименного поля. (В отличие от этого метода, поле не обеспечивает безопасность типов.)
Параметры типа:
T — класс объектов в множестве
Возвращает:
пустое множество
Начиная с:
1.5
См. также:
  • EMPTY_SET

emptySortedSet

public static <E> SortedSet<E> emptySortedSet()
Возвращает пустое отсортированное множество (неизменяемое). Это множество сериализуемо.

В этом примере показан безопасный с точки зрения типов способ получить пустое отсортированное множество:

    SortedSet<String> s = Collections.emptySortedSet();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект SortedSet при каждом вызове.
Параметры типа:
E — тип элементов множества, если бы они были
Возвращает:
пустое отсортированное множество
Начиная с:
1.8

emptyNavigableSet

public static <E> NavigableSet<E> emptyNavigableSet()
Возвращает пустое навигационное множество (неизменяемое). Это множество сериализуемо.

В этом примере показан безопасный с точки зрения типов способ получить пустое навигационное множество:

    NavigableSet<String> s = Collections.emptyNavigableSet();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект NavigableSet при каждом вызове.
Параметры типа:
E — тип элементов множества, если бы они были
Возвращает:
пустое навигационное множество
Начиная с:
1.8

emptyList

public static final <T> List<T> emptyList()
Возвращает пустой список (неизменяемый). Этот список сериализуем.

В этом примере показан безопасный с точки зрения типов способ получить пустой список:

    List<String> s = Collections.emptyList();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект List при каждом вызове. Вероятно, стоимость использования этого метода будет сопоставима со стоимостью использования одноименного поля. (В отличие от этого метода, поле не обеспечивает безопасность типов.)
Параметры типа:
T — тип элементов списка, если бы они были
Возвращает:
пустой неизменяемый список
Начиная с:
1.5
См. также:
  • EMPTY_LIST

emptyMap

public static final <K,V> Map<K,V> emptyMap()
Возвращает пустую карту (неизменяемую). Эта карта сериализуема.

В этом примере показан безопасный с точки зрения типов способ получить пустую карту:

    Map<String, Date> s = Collections.emptyMap();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект Map при каждом вызове. Вероятно, стоимость использования этого метода будет сопоставима со стоимостью использования одноименного поля. (В отличие от этого метода, поле не обеспечивает безопасность типов.)
Параметры типа:
K — класс ключей карты
V — класс значений карты
Возвращает:
пустую карту
Начиная с:
1.5
См. также:
  • EMPTY_MAP

emptySortedMap

public static final <K,V> SortedMap<K,V> emptySortedMap()
Возвращает пустую отсортированную карту (неизменяемую). Эта карта сериализуема.

В этом примере показан безопасный с точки зрения типов способ получить пустую карту:

    SortedMap<String, Date> s = Collections.emptySortedMap();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект SortedMap при каждом вызове.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Возвращает:
пустую отсортированную карту
Начиная с:
1.8

emptyNavigableMap

public static final <K,V> NavigableMap<K,V> emptyNavigableMap()
Возвращает пустую навигационную карту (неизменяемую). Эта карта сериализуема.

В этом примере показан безопасный с точки зрения типов способ получить пустую карту:

    NavigableMap<String, Date> s = Collections.emptyNavigableMap();
Примечание по реализации:
Реализациям этого метода не обязательно создавать отдельный объект NavigableMap при каждом вызове.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Возвращает:
пустую навигационную карту
Начиная с:
1.8

singleton

public static <T> Set<T> singleton(T o)
Возвращает неизменяемое множество, содержащее только указанный объект. Возвращаемое множество сериализуемо.
Параметры типа:
T — класс объектов в множестве
Параметры:
o — единственный объект, который будет сохранен в возвращаемом множестве.
Возвращает:
неизменяемое множество, содержащее только указанный объект.

singletonList

public static <T> List<T> singletonList(T o)
Возвращает неизменяемый список, содержащий только указанный объект. Возвращаемый список сериализуем.
Параметры типа:
T — класс объектов в списке
Параметры:
o — единственный объект, который будет сохранен в возвращаемом списке.
Возвращает:
неизменяемый список, содержащий только указанный объект.
Начиная с:
1.3

singletonMap

public static <K,V> Map<K,V> singletonMap(K key, V value)
Возвращает неизменяемую карту, сопоставляющую указанный ключ только с указанным значением. Возвращаемая карта сериализуема.
Параметры типа:
K — класс ключей карты
V — класс значений карты
Параметры:
key — единственный ключ, который будет сохранен в возвращаемой карте.
value — значение, с которым возвращаемая карта сопоставляет key.
Возвращает:
неизменяемую карту, содержащую только указанное соответствие ключа и значения.
Начиная с:
1.3

nCopies

public static <T> List<T> nCopies(int n, T o)
Возвращает неизменяемый список, состоящий из n копий указанного объекта. Создаваемый объект данных имеет крошечный размер (он содержит единственную ссылку на объект данных). Этот метод удобно использовать вместе с методом List.addAll для увеличения списков. Возвращаемый список сериализуем.
Параметры типа:
T — класс копируемого объекта и объектов в возвращаемом списке.
Параметры:
n — количество элементов в возвращаемом списке.
o — элемент, который будет многократно включен в возвращаемый список.
Возвращает:
неизменяемый список, состоящий из n копий указанного объекта.
Выбрасывает:
IllegalArgumentException — если n < 0
См. также:
  • List.addAll(Collection)
  • List.addAll(int, Collection)

reverseOrder

public static <T> Comparator<T> reverseOrder()
Возвращает компаратор, задающий порядок, обратный естественному порядку, для коллекции объектов, реализующих интерфейс Comparable. (Естественный порядок задаётся собственным методом compareTo объектов.) Это позволяет легко сортировать (или поддерживать в определённом порядке) коллекции (или массивы) объектов, реализующих интерфейс Comparable, в обратном естественном порядке. Например, предположим, что a — массив строк. Тогда:
         Arrays.sort(a, Collections.reverseOrder());
сортирует массив в обратном лексикографическом (алфавитном) порядке.

Возвращаемый компаратор сериализуем.

Примечание к API:
Этот метод возвращает Comparator, подходящий для сортировки элементов в обратном порядке. Чтобы получить обратное представление упорядоченной коллекции, используйте метод SequencedCollection.reversed. Или, чтобы получить обратное представление упорядоченной карты, используйте метод SequencedMap.reversed.
Параметры типа:
T — класс объектов, сравниваемых компаратором
Возвращает:
Компаратор, задающий порядок, обратный естественному порядку, для коллекции объектов, реализующих интерфейс Comparable.
См. также:
  • Comparable

reverseOrder

public static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
Возвращает компаратор, задающий порядок, обратный порядку указанного компаратора. Если указанный компаратор равен null, этот метод эквивалентен reverseOrder() (иначе говоря, он возвращает компаратор, задающий порядок, обратный естественному порядку, для коллекции объектов, реализующих интерфейс Comparable).

Возвращаемый компаратор сериализуем (если указанный компаратор также сериализуем или null).

Примечание к API:
Этот метод возвращает Comparator, подходящий для сортировки элементов в обратном порядке. Чтобы получить обратное представление упорядоченной коллекции, используйте метод SequencedCollection.reversed. Или, чтобы получить обратное представление упорядоченной карты, используйте метод SequencedMap.reversed.
Параметры типа:
T — класс объектов, сравниваемых компаратором
Параметры:
cmp — компаратор, порядок которого должен быть обращён возвращаемым компаратором, или null
Возвращает:
Компаратор, задающий порядок, обратный порядку указанного компаратора.
Начиная с версии:
1.5

enumeration

public static <T> Enumeration<T> enumeration(Collection<T> c)
Возвращает перечисление для указанной коллекции. Это обеспечивает совместимость с устаревшими API, которым требуется перечисление в качестве входных данных.

Итератор, возвращаемый вызовом Enumeration.asIterator(), не поддерживает удаление элементов из указанной коллекции. Это необходимо, чтобы случайно не расширить возможности возвращаемого перечисления.

Параметры типа:
T — класс объектов в коллекции
Параметры:
c — коллекция, для которой возвращается перечисление.
Возвращает:
перечисление для указанной коллекции.
См. также:
  • Enumeration

list

public static <T> ArrayList<T> list(Enumeration<T> e)
Возвращает список-массив, содержащий элементы, возвращаемые указанным перечислением, в том порядке, в котором их возвращает перечисление. Этот метод обеспечивает совместимость между устаревшими API, возвращающими перечисления, и новыми API, которым требуются коллекции.
Параметры типа:
T — класс объектов, возвращаемых перечислением
Параметры:
e — перечисление, предоставляющее элементы для возвращаемого списка-массива
Возвращает:
список-массив, содержащий элементы, возвращаемые указанным перечислением.
Начиная с версии:
1.4
См. также:
  • Enumeration
  • ArrayList

frequency

public static int frequency(Collection<?> c, Object o)
Возвращает количество элементов в указанной коллекции, равных указанному объекту. Более формально, возвращает количество элементов e в коллекции, для которых выполняется Objects.equals(o, e).
Параметры:
c — коллекция, в которой определяется частота появления o
o — объект, частоту появления которого нужно определить
Возвращает:
количество элементов в c, равных o
Вызывает исключение:
NullPointerException — если c равно null
Начиная с версии:
1.5

disjoint

public static boolean disjoint(Collection<?> c1, Collection<?> c2)
Возвращает true, если две указанные коллекции не имеют общих элементов.

Следует соблюдать осторожность при использовании этого метода с коллекциями, которые не соответствуют общему контракту Collection. Реализации могут выбрать перебор любой из коллекций и проверку наличия элементов в другой коллекции (или выполнить эквивалентное вычисление). Если в одной из коллекций используется нестандартная проверка равенства (как в случае с SortedSet, порядок элементов которого несовместим с equals, или с набором ключей IdentityHashMap), обе коллекции должны использовать одну и ту же нестандартную проверку равенства, иначе результат этого метода не определён.

Также следует соблюдать осторожность при работе с коллекциями, накладывающими ограничения на содержащиеся в них элементы. Реализации коллекций могут вызывать исключения при выполнении любых операций с элементами, которые они считают недопустимыми. Для полной безопасности указанные коллекции должны содержать только элементы, допустимые для обеих коллекций.

Допускается передавать одну и ту же коллекцию в оба параметра. В этом случае метод вернёт true тогда и только тогда, когда коллекция пуста.

Параметры:
c1 — коллекция
c2 — коллекция
Возвращает:
true, если две указанные коллекции не имеют общих элементов.
Вызывает исключение:
NullPointerException — если одна из коллекций равна null.
NullPointerException — если одна коллекция содержит элемент null, а null не является допустимым элементом для другой коллекции. (необязательно)
ClassCastException — если одна коллекция содержит элемент типа, недопустимого для другой коллекции. (необязательно)
Начиная с версии:
1.5

addAll

@SafeVarargs public static <T> boolean addAll(Collection<? super T> c, T... elements)
Добавляет все указанные элементы в указанную коллекцию. Добавляемые элементы можно указать по отдельности или в виде массива. Поведение этого вспомогательного метода аналогично поведению c.addAll(Collections.unmodifiableList(Arrays.asList(elements))).

Указание элементов по отдельности позволяет удобно добавлять несколько элементов в существующую коллекцию:

    Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
Параметры типа:
T — класс добавляемых элементов и коллекции
Параметры:
c — коллекция, в которую должны быть добавлены elements
elements — элементы для добавления в c
Возвращает:
true, если коллекция изменилась в результате вызова
Вызывает исключение:
UnsupportedOperationException — если c не поддерживает операцию add
NullPointerException — если elements содержит одно или несколько значений null, а c не допускает null-элементы, либо если c или elements равны null
IllegalArgumentException — если какое-либо свойство значения в elements препятствует его добавлению в c
Начиная с версии:
1.5
См. также:
  • Collection.addAll(Collection)

newSetFromMap

public static <E> Set<E> newSetFromMap(Map<E,Boolean> map)
Возвращает набор, основанный на указанной карте. Полученный набор обладает теми же характеристиками порядка, параллельного доступа и производительности, что и исходная карта. По сути, этот фабричный метод предоставляет реализацию Set, соответствующую любой реализации Map. Нет необходимости использовать этот метод для реализации Map, уже имеющей соответствующую реализацию Set (например, HashMap или TreeMap).

Каждый вызов метода для набора, возвращённого этим методом, приводит ровно к одному вызову метода для исходной карты или её представления keySet, за одним исключением. Метод addAll реализован как последовательность вызовов put для исходной карты.

Указанная карта должна быть пустой на момент вызова этого метода, и после его возврата к ней не следует обращаться напрямую. Эти условия выполняются, если карта создаётся пустой, напрямую передаётся этому методу и ссылка на карту не сохраняется, как показано в следующем фрагменте кода:

   Set<Object> weakHashSet = Collections.newSetFromMap(
       new WeakHashMap<Object, Boolean>());
Параметры типа:
E — класс ключей карты и объектов в возвращаемом наборе
Параметры:
map — исходная карта
Возвращает:
набор, основанный на карте
Вызывает исключение:
IllegalArgumentException — если map не пуста
Начиная с версии:
1.6

newSequencedSetFromMap

public static <E> SequencedSet<E> newSequencedSetFromMap(SequencedMap<E,Boolean> map)
Возвращает упорядоченный набор, основанный на указанной карте. Полученный набор обладает теми же характеристиками порядка, параллельного доступа и производительности, что и исходная карта. По сути, этот фабричный метод предоставляет реализацию SequencedSet, соответствующую любой реализации SequencedMap.

Каждый вызов метода для набора, возвращённого этим методом, приводит ровно к одному вызову метода для исходной карты или её представления keySet, за одним исключением. Метод addAll реализован как последовательность вызовов put для исходной карты.

Указанная карта должна быть пустой на момент вызова этого метода, и после его возврата к ней не следует обращаться напрямую. Эти условия выполняются, если карта создаётся пустой, напрямую передаётся этому методу и ссылка на карту не сохраняется.

Примечание к API:
Следующий пример кода создаёт SequencedSet из LinkedHashMap. Это отличается от LinkedHashSet тем, что removeEldestEntry карты переопределяется для реализации политики вытеснения, что невозможно с LinkedHashSet.
    SequencedSet<String> set = Collections.newSequencedSetFromMap(
        new LinkedHashMap<String, Boolean>() {
            protected boolean removeEldestEntry(Map.Entry<String, Boolean> e) {
                return this.size() > 5;
            }
       });
Параметры типа:
E — класс ключей карты и объектов в возвращаемом наборе
Параметры:
map — исходная карта
Возвращает:
набор, основанный на карте
Вызывает исключение:
IllegalArgumentException — если map не пуста
Начиная с версии:
21

asLifoQueue

public static <T> Queue<T> asLifoQueue(Deque<T> deque)
Возвращает представление Deque в виде очереди Queue с принципом «последним пришёл — первым ушёл» (LIFO). Метод add отображается на push, remove отображается на pop и так далее. Это представление может быть полезно, если требуется использовать метод, которому нужна Queue, но необходим порядок LIFO.

Каждый вызов метода для очереди, возвращённой этим методом, приводит ровно к одному вызову метода для исходной двусторонней очереди, за одним исключением. Метод addAll реализован как последовательность вызовов addFirst для исходной двусторонней очереди.

Примечание к API:
Этот метод предоставляет представление, инвертирующее смысл некоторых операций, но не меняющее порядок обхода. Чтобы получить представление с обратным порядком, используйте метод Deque.reversed.
Параметры типа:
T — класс объектов в двусторонней очереди
Параметры:
deque — двусторонняя очередь
Возвращает:
очередь
Начиная с версии:
1.6

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Collections.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API