Академический Документы
Профессиональный Документы
Культура Документы
Arrays.sort(catsName);
Копирование массивов
Arrays.copyOf(оригинальный_массив,новая_длина) —
возвращает массив-копию новой длины. Если новая длина меньше
оригинальной, то массив усекается до этой длины, а если больше, то
дополняется нулями (что рассматривается как нулевые значения
соответствующего типа);
Пример.
import java.util.Arrays;
figures[2]=30;
System.out.println(numbers[2]); // равно 3
}
}
Пример.
int[] a = {1,2,3};
int[] b = Arrays.copyOf(a,5);
for (int i=0; i<b.length; i++)
System.out.println(b[i]);
На печать будет выведено следующее:
1
2
3
0
0
Arrays.copyOfRange(оригинальный_массив,начальный_ин
декс,конечный_индекс) — также возвращает массив-копию новой
длины, при этом копируется часть оригинального массива от начального
индекса до конечного –1.
package com.test.arrays;
import static java.lang.System.out;
// Для работы с массивами
import java.util.Arrays;
out.println();
// Правильный вывод элементов массива по
быстродействию
for(String s : massive2){
out.printf("%s ", s);
}
out.println();
for(String s1 : massive3){
out.printf("%s ", s1);
}
}
}
Вывод одномерных массивов с помощью метода toString()
Функция Arrays.toString(массив) возвращает строковое
представление массива со строковым представлением элементов,
заключенных в квадратные скобки. Заметим, что вызов
массив.toString() возвратит результат в виде, очень далеком от такого
представления.
Данный способ предоставляет гораздо большие возможности, чем даже
улучшенный цикл for. Метод toString() перегружен для аргументов
примитивных типов и типа Object. Ниже приведена программа, в которой
используется метод toString() для вывода массива с элементами
примитивного типа int и массива объектов с базовыми элементами типа
String.
Файл DisplayingArrayDemo.java
import java.util.Arrays;
class DisplayingArrayDemo
{
public static void main (String args[])
{
String[] s = {"First string",
"Second string",
"Third string"};
int[] n = {7,6,5,4,3,2,1};
System.out.println("--String array elements --");
System.out.println(Arrays.toString(s));
System.out.println();
System.out.println("-- int array elements --");
System.out.println(Arrays.toString(n));
System.out.println();
}
}
Результат выполнения программы:
--String array elements --
[First string, Second string, Third string]
-- int array elements --
[7, 6, 5, 4, 3, 2, 1]
Заполнение массива
Метод Arrays.fill() - наполнение массива одинаковыми данными
Быстро заполнить массив одинаковыми значениями позволяет метод
Arrays.fill(массив, значение).
Восемнадцать статических методов класса Arrays заполняют массив
или часть массива указанным значением value:
Arrays.fill(type[], type value);
Arrays.fill(type[], int from, int to, type value);
где type — один из восьми примитивных типов или тип Object.
Метод fill() просто дублирует одно заданное значение в каждом
элементе массива (в случае объектов копирует одну ссылку в каждый
элемент):
int size = 4;
boolean[] test1 = new boolean[size];
int[] test2 = new int[size];
String[] test3 = new String[size];
Arrays.fill(test1, true); // присваивем всем true
Toast.makeText(getApplicationContext(),
Arrays.toString(test1),
Toast.LENGTH_LONG).show();
Arrays.fill(test2, 9); // присваиваем всем 9
Toast.makeText(getApplicationContext(),
Arrays.toString(test2),
Toast.LENGTH_LONG).show();
Arrays.fill(test3, "Мяу!"); // Ну вы поняли
Toast.makeText(getApplicationContext(),
Arrays.toString(test3),
Toast.LENGTH_LONG).show();
Запустив код, вы увидите, что на экране по очереди выводятся
значения:
[true, true, true, true]
[9, 9, 9, 9]
[Мяу!, Мяу!, Мяу!, Мяу!]
Можно заполнить данными в нужном интервале за два прохода:
int size = 4;
String[] test3 = new String[size];
Arrays.fill(test3, "Мяу! ");
Arrays.fill(test3, 2, 3, "Гав!");
Toast.makeText(getApplicationContext(),
Arrays.toString(test3),
Toast.LENGTH_LONG).show();
Сначала массив заполнится мяуканьем кота 4 раза, а потом на третью
позицию попадает слово Гав!:
[Мяу!, Мяу!, Гав!, Мяу!]
Как видите, метод заполняет весь массив, либо диапазон его элементов.
Но получаемые одинаковые данные не слишком интересны для опытов, но
пригодятся для быстрых экспериментов.
Сравнение массивов
Поэлементное сравнение массива следует выполнять с помощью
метода Arrays.equals(a,a1).
Чтобы два массива считались равными, они должны содержать
одинаковое количество элементов, и каждый элемент должен быть
эквивалентен соответствующему элементу другого массива.
Заметим, что у любого массива имеется метод equals, унаследованный
от класса Object и позволяющий сравнивать массивы. Но, к сожалению,
метод не переопределен и сравнение идет по адресам объектов, а не по
содержимому. Поэтому a.equals(a1) это то же самое, что a==a1. Оба
сравнения вернут false, т. к. адреса объектов, на которые ссылаются
переменные a и a1, различаются, хотя содержимое массива a1 скопировано с
a. Напротив, Arrays.equals(a,a1) в нашем случае возвратит true.
Arrays.deepEquals(a1,a2) — сравнение на равенство
содержимого массивов объектов a1 и a2 путем глубокого сравнения (на
равенство содержимого, а не ссылок, на произвольном уровне вложенности).
public void onClick(View v) {
// Создаем два массива
int[] a1 = new int[10];
int[] a2 = new int[10];
// заполняем их девятками
Arrays.fill(a1, 9);
Arrays.fill(a2, 9);
editResult.setText("Сравним: " +
Arrays.equals(a1, a2));
}
Мы создали два массива и заполнили их одинаковыми числами. При
сравнении мы получим true. Добавим в код строчку кода, которая заменит
один элемент во втором массиве:
//Изменим один элемент у второго массива
a2[3] = 11;
editResult.setText("Сравним: " +
Arrays.equals(a1, a2));
Теперь при сравнении будет выдаваться false.
int aNums[] = { 2, 4, 6 };