1. Список методов
Помните, что разработчики Java для удобства работы с массивами написали целый класс-помощник — Arrays
?
Для коллекций они сделали то же самое. В Java есть класс java.util.Collections
, у которого очень много методов, полезных при работе с коллекциями. Ниже приведем только самые интересные из них:
Методы | Описание |
---|---|
|
Добавляет в коллекцию colls элементы e1 , e2 , e3 ,... |
|
Заменяет в переданном списке все элементы на obj |
|
Возвращает список, состоящий из n копий объекта obj |
|
Заменяет в списке list все значения oldVal на newVal |
|
Копирует все элементы из списка src в список dest |
|
Разворачивает список задом наперед |
|
Сортирует список в порядке возрастания |
|
Циклично сдвигает элементы списка list на n элементов |
|
Случайно перемешивает элементы списка |
|
Находит минимальный элемент коллекции colls |
|
Находит максимальный элемент коллекции colls |
|
Определяет, сколько раз элемент obj встречается в коллекции colls |
|
Ищет элемент key в отсортированном списке, возвращает индекс. |
|
Возвращает true , если у коллекций нет общих элементов |
Многие из этих методов работают не с классами ArrayList
, HashSet
и HashMap
, а с их интерфейсами: Collection<T>
, List<T>
, Map<K, V>
.
Это не проблема: если метод принимает List<T>
, в него всегда можно передать ArrayList<Integer>
, но вот в обратную сторону присваивание не работает.
2. Создание и изменение коллекций
Метод Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)
Метод addAll()
добавляет в коллекцию colls
элементы e1
, e2
, e3
, ... Количество переданных элементов может быть любым.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.fill(List<T> list, T obj)
Метод fill()
заменяет все элементы коллекции list
на элемент obj
.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.nCopies (int n, T obj)
Метод nCopies()
возвращает список из n
копий элементов obj
. Список можно назвать фиктивным (реального массива внутри нет), поэтому изменять его нельзя! Можно использовать только для чтения.
Код | Описание |
---|---|
|
Создаем неизменяемый список из 5 элементов Привет Создаем реальный список list , заполняем его значениями из списка fake .Выводим на экран:
|
Метод Collections.replaceAll (List<T> list, T oldValue, T newValue)
Метод replaceAll()
заменяет все элементы коллекции list
, равные oldValue
, на элемент newValue
.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.copy (List<T> dest, List<T> src)
Метод copy()
копирует все элементы коллекции src
в коллекцию dest
.
Если изначально коллекция dest
длиннее чем коллекция src
, то оставшиеся элементы в коллекции dest
останутся нетронутыми.
dest
должна иметь длину не меньше, чем длина коллекции src
(иначе кинется исключение IndexOutOfBoundsException
).
Код | Вывод на экран |
---|---|
|
|
3. Порядок элементов
Метод Collections.reverse(List<T> list)
Метод reverse()
меняет порядок переданных в него элементов списка на обратный.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.sort(List<T> list)
Метод sort()
сортирует переданный в него список по возрастанию.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.rotate(List<T> list, int distance)
Метод rotate()
циклическим образом сдвигает переданные в него элементы на distance
позиций вперед.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.shuffle(List<T> list)
Метод shuffle()
случайным образом перемешивает все элементы переданного списка. Результат каждый раз разный.
Код | Вывод на экран |
---|---|
|
|
4. Поиск элементов в коллекциях
Метод Collections.min(Collection<T> colls)
Метод min()
возвращает минимальный элемент коллекции.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.max(Collection<T> colls)
Метод max()
возвращает максимальный элемент коллекции.
Код | Вывод на экран |
---|---|
|
|
Метод Collections.frequency(Collection<T> colls, T obj)
Метод frequency()
подсчитывает, сколько раз в коллекции colls
встречается элемент obj
Код | Вывод на экран |
---|---|
|
|
Метод Collections.binarySearch(List<T> list, T key)
Метод binarySearch()
ищет элемент key
в списке list
. Возвращает номер найденного элемента. Если элемент не найден, возвращает отрицательное число.
binarySearch()
список нужно отсортировать (Collections.sort()
).
Код | Вывод на экран |
---|---|
|
|
Метод Collections.disjoint(Collection<T> coll1, Collection<T> coll2)
Метод disjoint()
возвращает true
, если у переданных коллекций нет одинаковых элементов.
Код | Вывод на экран |
---|---|
|
|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ