Массивы в Java
В Java, чтобы объявить массив, надо в определении переменной написать квадратные скобки. Их можно разместить как перед именем переменной, так и после него. Однако первый способ предпочтительней, так как является java-стилем, второй способ – си-стиль. С правой части от знака присваивания создается объект соответствующего типа, при этом вместо круглых скобок пишутся квадратные, в которых указывается количество элементов массива. Примеры объявления переменных и создания массива вещественных чисел и строк:
double[] a = new double[10]; String[] b = new String[5];
Обращение к элементам массива происходит по их индексам, заключенным в квадратные скобки.
public class ArrayClass { public static void main(String[] args) { int[] a = new int[3]; a[0] = 15; a[1] = 12; a[2] = -3; for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } for (int i : a) { System.out.println(i); } int[][] b = new int[2][2]; b[0][0] = -1; b[0][1] = 1; b[1][0] = 1; b[1][1] = -1; for (int[] ints : b) { for (int i : ints) { System.out.println(i); } } } }
Если требуется сразу присвоить элементам массива значения, то значения перечисляются в фигурных скобках непосредственно после знака присваивания:
String[] s = {"ab", "cd", "ef"};
В Java размер обычного массива изменять нельзя.
Существует статический класс Arrays, методы которого позволяют выполнять многие рядовые операции с массивами – сортировку, копирование, вывод на экран, сравнение и др.
import java.util.Arrays; import java.util.Random; public class ArraysTest { public static void main(String[] args) { Random random = new Random(); int[] a = new int[10]; for (int i = 0; i < 10; i++) { a[i] = random.nextInt(100); } System.out.println(Arrays.toString(a)); Arrays.sort(a); System.out.println(Arrays.toString( Arrays.copyOf(a, 5))); } }
Пример выполнения:
[22, 19, 58, 36, 45, 70, 10, 36, 91, 30]
[10, 19, 22, 30, 36]
Метод sort() сортирует переданный в качестве аргумента массив. Метод copyOf() копирует указанное количество элементов массива. При этом создается новый массив.
Можно создавать массивы объектов собственного класса:
public class ArrayOfObjects { public static void main(String[] args) { Book[] shelf = new Book[3]; shelf[0] = new Book("Red"); shelf[1] = new Book("Green"); shelf[2] = new Book("Blue"); System.out.println(shelf[1].title); } } class Book { String title; Book(String title) { this.title = title; } }