Spec-Zone.ru › OpenJDK 21

Класс Collections

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

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

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

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

Этот класс является членом Java Collections Framework.

Since:
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)
Возвращает неизменяемый вид указанного отсортированного набора.

Методы, объявленные в классе java.lang.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 в наборе).

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

Type Parameters:
T - класс объектов в наборе
Parameters:
coll - набор, максимальный элемент которого должен быть определён.
comp - компаратор, с помощью которого определяется максимальный элемент. Значение null указывает, что следует использовать естественный порядок элементов.
Returns:
максимальный элемент данного набора в соответствии с указанным компаратором.
Throws:
ClassCastException - если набор содержит элементы, которые не являются взаимно сравнимыми с помощью указанного компаратора.
NoSuchElementException - если набор пустой.
See Also:
  • 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).

Parameters:
list - список, который должен быть повернут.
distance - расстояние поворота списка. Нет ограничений на это значение; оно может быть нулевым, отрицательным или больше list.size().
Throws:
UnsupportedOperationException - если указанный список или его итератор не поддерживает операцию set.
Since:
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)). (Этот метод не влияет на размер списка.)
Type Parameters:
T - класс объектов в списке
Parameters:
list - список, в котором должно произойти замещение.
oldVal - старое значение, которое должно быть заменено.
newVal - новое значение, которым oldVal должно быть заменено.
Returns:
true, если list содержал один или более элементов e, таким образом, что (oldVal==null ? e==null : oldVal.equals(e)).
Throws:
UnsupportedOperationException - если указанный список или его итератор не поддерживает операцию set.
Since:
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())

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

Parameters:
source - список, в котором нужно найти первое вхождение target.
target - список, который нужно искать как подсписок source.
Returns:
начальная позиция первого вхождения указанного целевого списка в указанный исходный список, или -1, если такого вхождения нет.
Since:
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())

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

Parameters:
source - список, в котором нужно найти последнее вхождение target.
target - список, который нужно искать как подсписок source.
Returns:
начальная позиция последнего вхождения указанного целевого списка в указанный исходный список, или -1, если такого вхождения нет.
Since:
1.4

unmodifiableCollection

public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
Возвращает неизменяемый вид указанного набора. Операции запроса к возвращаемому набору «проходят через» к указанному набору, и попытки модифицировать возвращаемый набор, как непосредственно, так и через его итератор, приводят к UnsupportedOperationException.

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

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

Implementation Note:
Этот метод может вернуть свой аргумент, если аргумент уже неизменяем.
Type Parameters:
T - класс объектов в наборе
Parameters:
c - набор, для которого требуется вернуть неизменяемый вид.
Returns:
неизменяемый вид указанного набора.

unmodifiableSequencedCollection

public static <T> SequencedCollection<T> unmodifiableSequencedCollection(SequencedCollection<? extends T> c)
Возвращает неизменяемый вид указанного SequencedCollection. Операции запроса к возвращаемому набору «проходят через» к указанному набору, и попытки модифицировать возвращаемый набор, как непосредственно, так и через его итератор, приводят к UnsupportedOperationException.

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

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

Implementation Note:
Этот метод может вернуть свой аргумент, если аргумент уже неизменяем.
Type Parameters:
T - класс объектов в наборе
Parameters:
c - набор, для которого требуется вернуть неизменяемый вид.
Returns:
неизменяемый вид указанного набора.
Since:
21

неизменяемыйНабор

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

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

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

неизменяемыйПоследовательныйНабор

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

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

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

неизменяемыйОтсортированныйНабор

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

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

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

неизменяемыйНавигационныйНабор

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

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

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

неизменяемыйСписок

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

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

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

неизменяемаяКарта

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

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

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

неизменяемаяПоследовательнаяКарта

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

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

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

неизменяемаяОтсортированнаяКарта

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

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

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

неизменяемаяНавигационнаяКарта

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

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

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

синхронизированнаяКоллекция

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 - коллекция, которая будет "оборачиваться" в синхронизированную коллекцию.
Возвращаемое значение:
синхронизированный вид указанной коллекции.

синхронизированныйНабор

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

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

Type Parameters:
T - класс объектов в наборе
Parameters:
s - набор, который нужно "обернуть" в синхронизированный набор.
Returns:
синхронизированный вид указанного набора.

синхронизированныйОтсортированныйНабор

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

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

Type Parameters:
T - класс объектов в наборе
Parameters:
s - отсортированный набор, который нужно "обернуть" в синхронизированный отсортированный набор.
Returns:
синхронизированный вид указанного отсортированного набора.

синхронизированныйНавигационныйНабор

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

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

Type Parameters:
T - класс объектов в наборе
Parameters:
s - навигационный набор, который нужно "обернуть" в синхронизированный навигационный набор
Returns:
синхронизированный вид указанного навигационного набора
Since:
1.8

синхронизированныйСписок

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

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

Type Parameters:
T - класс объектов в списке
Parameters:
list - список, который нужно "обернуть" в синхронизированный список.
Returns:
синхронизированный вид указанного списка.

синхронизированнаяКарта

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

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

Type Parameters:
K - класс ключей карты
V - класс значений карты
Parameters:
m - карта, которую нужно "обернуть" в синхронизированную карту.
Returns:
синхронизированный вид указанной карты.

синхронизированнаяОтсортированнаяКарта

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

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

Type Parameters:
K - класс ключей карты
V - класс значений карты
Parameters:
m - отсортированная карта, которую нужно "обернуть" в синхронизированную отсортированную карту.
Returns:
синхронизированный вид указанной отсортированной карты.

синхронизированнаяНавигационнаяКарта

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

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

Type Parameters:
K - класс ключей карты
V - класс значений карты
Parameters:
m - навигационная карта, которую нужно "обернуть" в синхронизированную навигационную карту
Returns:
синхронизированный вид указанной навигационной карты
Since:
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 в базовый набор, но полагается на методы Object's equals и hashCode. Это необходимо для сохранения контрактов этих операций в случае, если базовый набор является множеством или списком.

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

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

Type Parameters:
E - класс объектов в наборе
Parameters:
c - набор, для которого необходимо вернуть динамически типизированный вид
type - тип элемента, который c разрешено хранить
Returns:
динамически типизированный вид указанного набора
Since:
1.5

checkedQueue

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

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

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

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

Type Parameters:
E - класс объектов в очереди
Parameters:
queue - очередь, для которой необходимо вернуть динамически типизированный вид
type - тип элемента, который queue разрешено хранить
Returns:
динамически типизированный вид указанной очереди
Since:
1.8

checkedSet

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

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

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

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

Type Parameters:
E - класс объектов в множестве
Parameters:
s - множество, для которого необходимо вернуть динамически типизированный вид
type - тип элемента, который s разрешено хранить
Returns:
динамически типизированный вид указанного множества
Since:
1.5

checkedSortedSet

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

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

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

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

Type Parameters:
E - класс объектов в множестве
Parameters:
s - упорядоченное множество, для которого необходимо вернуть динамически типизированный вид
type - тип элемента, который s разрешено хранить
Returns:
динамически типизированный вид указанного упорядоченного множества
Since:
1.5

checkedNavigableSet

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

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

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

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

Type Parameters:
E - класс объектов в множестве
Parameters:
s - навигационное множество, для которого необходимо вернуть динамически типизированный вид
type - тип элемента, который s разрешено хранить
Returns:
динамически типизированный вид указанного навигационного множества
Since:
1.8

checkedList

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

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

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

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

Type Parameters:
E - класс объектов в списке
Parameters:
list - список, для которого необходимо вернуть динамически типизированный вид
type - тип элемента, который list разрешено хранить
Returns:
динамически типизированный вид указанного списка
Since:
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 считается значением любого ссылочного типа, возвращаемая карта допускает вставку нулевых ключей или значений всякий раз, когда это допускает базовая карта.

Type Parameters:
K - класс ключей карты
V - класс значений карты
Parameters:
m - карта, для которой требуется вернуть динамически типизированный вид
keyType - тип ключа, который m может содержать
valueType - тип значения, которое m может содержать
Returns:
динамически типизированный вид указанной карты
Since:
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 считается значением любого ссылочного типа, возвращаемая карта допускает вставку нулевых ключей или значений всякий раз, когда это допускает базовая карта.

Type Parameters:
K - класс ключей карты
V - класс значений карты
Parameters:
m - карта, для которой требуется вернуть динамически типизированный вид
keyType - тип ключа, который m может содержать
valueType - тип значения, которое m может содержать
Returns:
динамически типизированный вид указанного отображения
Since:
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 считается значением любого ссылочного типа, возвращаемая карта допускает вставку нулевых ключей или значений всякий раз, когда это допускает базовая карта.

Type Parameters:
K - тип ключей карты
V - тип значений карты
Parameters:
m - карта, для которой требуется вернуть динамически типизированный вид
keyType - тип ключа, который m может содержать
valueType - тип значения, которое m может содержать
Returns:
динамически типизированный вид указанного отображения с навигацией
Since:
1.8

emptyIterator

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

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

Type Parameters:
T - тип элементов, если таковые имелись, в итераторе
Returns:
пустой итератор
Since:
1.7

emptyListIterator

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

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

Type Parameters:
T - тип элементов, если таковые имелись, в итераторе
Returns:
пустой список итератор
Since:
1.7

emptyEnumeration

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

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

Type Parameters:
T - класс объектов в перечислении
Returns:
пустое перечисление
Since:
1.7

emptySet

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

Этот пример демонстрирует безопасный с точки зрения типов способ получения пустого множества:

     Set<String> s = Collections.emptySet();
 
Implementation Note:
Реализации этого метода не обязаны создавать отдельный Set объект для каждого вызова. Использование этого метода, вероятно, будет иметь сопоставимую стоимость с использованием одноимённого поля. (В отличие от этого метода, поле не предоставляет проверку типов.)
Type Parameters:
T - класс объектов в множестве
Returns:
пустое множество
Since:
1.5
See Also:
  • 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

перечисление

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

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

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

список

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

частота

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

непересекающиеся

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

добавить все

@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 содержит один или несколько нулевых значений, а c не допускает нулевых элементов, или если 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 как очереди «последним вошел — первым вышел» (LIFO). Метод add сопоставлен с push, метод remove сопоставлен с pop и так далее. Это представление может быть полезно, когда вам нужен метод, требующий Queue, но вам нужна очередность LIFO.

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

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

© 1993, 2023, 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/21/docs/api/java.base/java/util/Collections.html

Spec-Zone.ru

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