— Привет, Амиго!

Как прошли утренние лекции?

— Да прилично так, я тебе скажу.

Билаабо дал кучу паттернов проектирования, Элли кучу всего по коллекциям. Непростой выдался денек.

— Ничего, зато я тебя сильно ничем нагружать не стану.

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

Это классы Arrays и Collections. Все их методы статические и предназначены для работы с коллекциями и массивами.

Начну с более простого – Arrays. Вот его методы:

Методы Пояснение
List<T> asList(T... a)
Возвращает неизменяемый список, заполненный переданными элементами.
int binarySearch(int[] a, int fromIndex, int toIndex, int key)
Ищет элемент (key) в массиве a или подмассиве, начиная с fromIndex и до toIndex.
Массив должен быть отсортирован!
Возвращает номер элемента или fromIndex-1, если элемент не найдет.
int[] copyOf(int[] original, int newLength)
Возвращает подмассив original массива, newLength элементов, начиная с нулевого.
int[] copyOfRange(int[] original, int from, int to)
Возвращает под массив original массива, начиная с from и до to.
boolean deepEquals(Object[] a1, Object[] a2)
Глубокое сравнение массивов. Массивы считаются равными, если равны их элементы. Если элементы сами являются массивами, для них тоже выполняется глубокое сравнение.
int deepHashCode(Object a[])
Глубокий хэшкод на основе всех элементов. Если элемент является массивом, для него также вызывается deepHashCode.
String deepToString(Object[] a)
Глубокое преобразование к строке. Для всех элементов вызывается toString(). Если элемент является массивом, для него тоже выполняется глубокое преобразование к строке.
boolean equals(int[] a, int[] a2)
Сравнивает два массива поэлементно.
void fill(int[] a, int fromIndex, int toIndex, int val)
Заполняет массив (или подмассив) заданным значением.
int hashCode(int a[])
Вычисляет общий hashCode всех элементов массива.
void sort(int[] a, int fromIndex, int toIndex)
Сортирует массив (или подмассив) по возрастанию.
String toString(int[] a)
Преобразовывает массив к строке. Для всех элементов вызывается toString();

— А что, очень полезные методы, многие мне бы пригодились.

— Хочу еще заметить, что я тут привел не все методы. Почти все методы из таблицы дублируются для всех примитивных типов. Т.е. если написано String toString(int[] a), то также есть методы String toString(boolean[] a), String toString(byte[] a), String toString(long[] a), String toString(float[] a), String toString(double[] a), String toString(char[] a).

— Так это же меняет дело. Теперь это просто незаменимый класс.

— Рад, что тебе понравилось. Тогда продолжим после перерыва.