static int binarySearch(type[] a, type element);
где type один из семи примитивных типов (byte, short, int, long, char, float, double)
или тип Object.
Восемь методов сортируют часть массива, начиная от элемента с индексом from включительно до элемента с индексом to исключительно:
static int binarySearch(type[] a, int from, int to, type element);
Оставшиеся два метода поиска применяют настраиваемые типы и имеют более сложный вид:
static
Comparator Super T> c);
Они отыскивает элемент element в массиве или его части, отсортированном в порядке, заданном объектом c.
Методы поиска возвращают индекс найденного элемента массива. Если элемент не найден, то возвращается отрицательное число, абсолютная величина которого означает индекс, с которым элемент был бы вставлен в массив в заданном порядке.
Восемнадцать статических методов класса Arrays заполняют массив или часть массива указанным значением value:
static void fill(type[], type value);
static void fill(type[], int from, int to, type value);
где type-один из восьми примитивных типов или тип Object.
Восемь методов класса Arrays, написанных для всех примитивных типов, обозначенных здесь словом type:
static type[] copyOf(type[] a, int newLength);
копируют массив a, возвращая ссылку на копию массива. Они обрезают массив a до длины newLength, если newLength меньше длины массива a, или дополняют массив нулями, если его длина меньше newLength.
Следующий метод использует настраиваемый тип:
static
Еще один метод копирования позволяет изменить тип массива:
static
При несовместимости старого и нового типов возникает исключительная ситуация.
Часть массива, начиная от элемента с индексом from и заканчивая перед элементом с индексом to, можно скопировать одним из десяти методов copyOfRange (). Восемь из них написаны для примитивных типов. Они имеют вид:
static type[] copyOfRange(type[] a, int from, int to);
Индекс to может оказаться больше длины массива, в таком случае массив-копия будет дополнен нулями.
Девятый метод использует настраиваемый тип массива:
static
Десятый метод может изменить тип копируемого массива:
static
При несовместимости старого и нового типов возникает исключительная ситуация.
Девять статических логических методов класса Arrays сравнивают массивы:
static boolean equals(type[] a1, type[] a2);
где type-один из восьми примитивных типов или тип Object.
Массивы считаются равными и возвращается true, если они имеют одинаковую длину, и равны все элементы массивов с одинаковыми индексами.
Еще один метод сравнения массивов:
static boolean deepEquals(Object[] a1, Object[] a2);
полезен для сравнения многомерных массивов, поскольку он сравнивает элементы массивов с любым количеством индексов.
Девять статических методов класса Arrays преобразуют массив в строку:
static String toString(type[] a);
где type-один из восьми примитивных типов или тип Object.
В формируемой строке массив записывается в квадратных скобках, а его элементы перечисляются через запятую и пробел. Каждый элемент преобразуется в строку методом String.valueOf (type).
Еще один метод преобразования массива в строку:
static String deepToString(Object[] a);
применяется для преобразования многомерных массивов. Он рекурсивно просматривает их подмассивы с любым количеством индексов.
Девять статических методов класса Arrays вычисляют хеш-код массива:
static int hashCode(type[] a);
где type один из восьми примитивных типов или тип Object.
Сначала массив представляется списком типа List, а затем вычисляется хеш-код списка методом List.hashCode ().
Еще один метод:
static int deepHashCode(Object[] a);
применяется для вычисления хеш-кода многомерных массивов. Он просматривает их подмассивы с любым количеством индексов.
В листинге 7.1 приведен простой пример работы с некоторыми из методов класса
Arrays.
Листинг 7.1. Применение методов класса Arrays
import java.util.*; class ArraysTest{
public static void main(String[] args){
int[] a = {34, -45, 12, 67, -24, 45, 36, -56}; Arrays.sort(a);
for (int i: a)
System.out.print(a[i] + " ");
System.out.println();
Arrays.fill(a, Arrays.binarySearch(a, 12), a.length, 0);
for (int i: a)
System.out.print(a[i] + " ");
System.out.println();
}
}
Локальные установки