Collections

Открыта

— А вот и я.

— Я уже давно тебя тут жду.

— Надеюсь. Тогда продолжим.

Представляю тебе супермеганавороченный утилитный класс для коллекций.

— Я уже весь дрожу.

— Отлично. Тогда начнем. Вот методы класса Collections:

Код Пояснение
boolean addAll(Collection<? super T> c, T... elements)
Добавляет переданные элементы в переданную коллекцию.
Удобно использовать в виде Collections.addList(list, 10,11,12,13,14,15)
Queue<T> asLifoQueue(Deque<T>






        deque)
Возвращает «обычную очередь», сделанную из «обратной очереди».
int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
Ищет с помощью двоичного поиска элемент key в списке list.
Список должен быть отсортирован.
Можно задать компаратор для сравнения элементов.
Collection<E> checkedCollection(Collection<E> c, Class<E> type)
Проверяет, что все элементы коллекции «с» определенного типа «type».
Аналогичные методы существуют для List, Map, Set и SortedSet.
void copy(List<? super T> dest, List<? extends T> src)
Копирует список «src»в список «dest».
boolean disjoint(Collection<?> c1, Collection<?> c2)
 Проверяет, что коллекции не содержат общих элементов
void fill(List<? super T> list, T obj)
 Заполоняет список list, элементом obj
int frequency(Collection<?> c, Object o)
Подсчитывает, сколько раз в коллекции «с» встречается объект «o»
int indexOfSubList(List<?> source, List<?> target)
Определяет индекс, с которого в список source входит список target как подпоследовательность.
Принцип аналогичен String.indexOf(«somestring»)
int lastIndexOfSubList(List<?> source, List<?> target)
Определяет последний индекс, с которого в список source входит список target как подпоследовательность.
Аналогичен String.lastIndexOf(«somestring»)
T max(Collection<? extends T> coll)
 Ищет максимальное число/значение в коллекции.
Как найти максимум из 6-и чисел?
Collections.max(Arrays.asList(51, 42, 33, 24, 15, 6));
T min(Collection<? extends T> coll)
 Ищет минимальное значение в коллекции.
List<T> nCopies(int n, T o)
 Создает фиктивную коллекцию, которая выглядит так, как будто в ней «n» раз встречается элемент «o».
boolean replaceAll(List<T> list, T oldVal, T newVal)
Заменяет в коллекции list все элементы oldVal на newVal
void reverse(List<?> list)
Разворачивает список задом наперед.
void shuffle(List<?> list)
 Перемешивает элементы списка случайным образом.
List<T> singletonList(T o)
Возвращает неизменяемый список, состоящий из одного переданного элемента.
Аналогичные методы существуют для Map, Set и SortedSet.
void sort(List<T> list)
 Сортирует список по возрастанию.
void swap(List<?> list, int i, int j)
 Меняет элементы списка местами
Collection<T> synchronizedCollection(Collection<T> c)
Оборачивает данную коллекцию в ее синхронизированный аналог.
Аналогичные методы существуют для List, Map, Set и SortedSet.

— Ничего себе! Да это же целый арсенал, а я и десятой части не использовал.

— Собственно, на этом моя сегодняшняя лекция и заканчивается.

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

А еще лучше – выучи. Они тебе пригодятся.

— Спасибо тебе, Риша. Пойду учить.

Комментарии (18)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Zim4ik
Уровень 1
4 сентября 2025, 13:01
👁
Alex
Уровень 2
12 сентября 2024, 09:52
У меня одного появился ползунок в этой лекции? Места по бокам полно, читать не удобно, в других такого не было:
Евгений Т.Full Stack Developer в Отличная компания
5 мая 2023, 08:54
Выучи это такое себе... зубрежка это дело не на долго, как ни зубри все равно забудется со временем
Kurama
Уровень 50
31 марта 2023, 16:09
Как найти максимум из 6-и чисел?
Collections.max(Arrays.asList(51, 42, 33, 24, 15, 6));
Я такой сначала: чее, зачем? А потом подумал, и это ж лучше, чем 5 раз вызывать
Math.max(..., ...)
или проходить циклом, хотя цикл скорее всего встроен в первый метод, хз
Макс Дудин
Уровень 41
2 июля 2022, 17:37
выучи....😳 всё таки надо заучивать? 😞
Denis Odesskiy Full Stack Developer
11 февраля 2025, 22:18
Зачем их заучивать? Там же по названиям методов всё понятно, не говоря уже про подсказку из доков при наведении на метод... Просто надо знать и понимать как оно работает. Хотя там и заучивать особенно нечего их не так много этих методов там. П/С: Одна из причин, почему мне нравится Java, — это её многословность. Когда код написан хорошо, переменные и методы подобраны с осмысленными названиями, он читается легко, как книга. А так как все современные IDE поддерживают автозавершение, скорость набора кода не страдает. Читаемость Java-кода лучше, например, по сравнению с Python, где из-за отсутствия скобок и точек с запятой в больших проектах взгляд начинает блуждать по экрану. А если ещё к тому же кто-то решит использовать одну переменную для хранения разных типов данных, то это может создать дополнительные сложности. (На самом деле Пайтон мне тоже нравится😉).
Anemon
Уровень 13
Expert
6 апреля 2025, 16:17
Я считаю тут главное вообще в принципе знать о наличии метода или о том что он может быть. Это для меня сейчас главная проблема. Забываю о методах и пишу сам, а мог бы очень многое сделать куда проще и быстрее х-х
Denis Odesskiy Full Stack Developer
6 апреля 2025, 17:37
Полностью согласен, в общем я это и хотел сказать. Ну а так все мы изобретаем велосипеды конечно время от времени😄.
Konstantin
Уровень 51
15 ноября 2021, 13:21
Это я на 9 лекции 7 уровня был. Сейчас я дома уже.
Zaakki
Уровень 41
5 августа 2020, 12:20
не понято, про методы nCopies и singletonList в чем великая идея ?
Ярослав Java Developer Master
14 июля 2018, 12:39
Забыли о unmodifiableList и подобных методах для возврата коллекции, которую нельзя изменить, довольно полезные методы.
Ra
Уровень 51
Student
27 июля 2023, 12:45
а где используются?
MaxLich
Уровень 40
22 сентября 2017, 18:57
Про метод checkedCollection(), по-моему, неправильно сказано. Как я понял из документации, создаётся типобезопасная копия текущей коллекции. И всякий раз, когда будет вставляться объект не того типа в данную копию коллекции, будет бросаться ClassCastException.
LuneFoxJava Developer в BIFITExpert
2 марта 2022, 19:33
Вот и я сразу обратил внимание, что возвращается коллекция, а не boolean.
Vitya
Уровень 33
12 июля 2017, 21:43
nCopies, кому интересно, вернёт immutable list, у всех элементов которого одна и та же ссылка.
Максим Java Developer
17 января 2019, 13:58
зачем такое надо?
LuneFoxJava Developer в BIFITExpert
2 марта 2022, 19:35
Техника теневого клонирования :)