Java за неделю. Вводный курс. Валерий Станиславович Яценков
результат false. Поэтому для сравнения массивов применяется специальный метод, который сравнивает количество ячеек, содержимое ячеек и порядок их расположения. Если хотя бы один из параметров не совпадает, результат сравнения будет отрицательным. Например, возьмем три массива:
int [] arr1 = {5,3,4,6,8,10};
int [] arr2 = {5,3,4,6,8,10};
int [] arr3 = {10,8,6,4,3,5};
boolean result1 = Arrays. equals (arr1, arr2);
boolean result2 = Arrays. equals (arr1, arr3);
Сравнение массивов arr1 и arr2 вернет результат true, потому что массивы совпадают по всем параметрам. Сравнение массивов arr1 и arr3 вернет результат false, поскольку у них не совпадает порядок расположения значений.
copyOfRange () – копирование фрагмента исходного массива в другой массив. Методу требуются три аргумента: источник, начальный индекс, конечный индекс. Допустим, у нас объявлен массив:
int [] source = {-2, -1,0,1,2,3,4,5,6};
После выполнения команды
int [] dest = Arrays.copyOfRange (source,2,5);
в новый массив будут скопированы значения {0,1,2}. Обратите внимание, что копируются элементы с индексом до второго значения, но не включая его. Поэтому элемент с индексом 5 не будет скопирован.
toString () – преобразование содержимого массива в строку. Это простой способ вывести содержимое массива на печать, например:
int [] arr = {3,8,10,1,6};
System.out.println(Arrays.toString (arr));
На печать будет выведена строка [3, 8, 10, 1, 6].
sort () – сортировка элементов массива по возрастанию. Метод sort () не возвращает новый массив. Он просто модифицирует имеющийся. Допустим, мы объявили массив и выполнили сортировку:
int [] arr = {10,3, -1,6,0};
Arrays.sort (arr);
System.out.println(Arrays.toString (arr));
На печать будет выведена строка [-1, 0, 3, 6, 10].
binarySearch () – поиск индекса заданного значения в отсортированном массиве. Если вы не уверены, что значения элементов массива расположены по возрастанию, то перед использованием метода binarySearch () необходимо отсортировать массив при помощи метода sort (). Допустим, у нас есть отсортированный массив:
int [] arr = {2,7,15,42,56,78};
int myIndex = Arrays.binarySearch (arr, 56);
Переменной myIndex будет присвоено значение 4. Это индекс элемента массива, имеющего значение 56.
Что случится, если в качестве аргумента указать значение, которого нет в массиве? Мы получим странный результат, который требует отдельных пояснений. Например, попробуем найти индекс для значения 18:
int myIndex = Arrays.binarySearch (arr, 18);
Переменной myIndex будет присвоено значение -4. Минус означает, что такое значение не найдено. Число 3 означает, какой у этого значения был бы индекс, если бы оно было в массиве. Но к этому индексу зачем-то прибавлена единица! Иными словами, если бы в массиве arr имелось значение 18, то у него был бы индекс 4—1=3.
Как мы уже упоминали в предыдущем разделе, длина массива (количество элементов) определяется через свойство length, поэтому метод для определения длины массива не применяется.
5.4 Строки
Строго говоря, строка в языке Java – это не тип данных, а экземпляр встроенного класса String. У класса String есть собственные методы для работы со строками. Класс String, в отличие от класса Arrays, не требует импорта.
Мы не случайно говорим о строках