5
Поскольку массив nums2
двухмерный, он представляет собой простую таблицу. Его также
можно было создать следующим образом: int[][] nums2 = new int[3][3];. Количество квадратных
скобок указывает на размерность массива. А числа в скобках - на количество строк и столбцов. И
также, используя индексы, мы можем использовать элементы массива в программе:
// установим элемент первого столбца второй строки
nums2[1][0]=44;
System.out.println(nums2[1][0]);
Объявление трехмерного массива могло бы выглядеть так:
int[][][] nums3 = new int[2][3][4];
Массив массивов
Многомерные массивы могут быть также представлены как "зубчатые массивы". В
вышеприведенном примере двухмерный массив имел 3
строчки и три столбца, поэтому у нас
получалась ровная таблица. Но мы можем каждому элементу в двухмерном массиве присвоить
отдельный массив с различным количеством элементов:
int[][] nums = new int[3][];
nums[0] = new int[2];
nums[1] = new int[3];
nums[2] = new int[5];
Работа с массивами и класс Arrays
Важнейшее свойство, которым обладают массивы,
является свойство length, возвращающее
длину массива, то есть количество его элементов: int length = nums.length;
Для работы с массивами в библиотеке классов Java в пакете java.util определен специальный
класс Arrays. С его помощью мы можем производить ряд операций над массивами.
Копирование массивов
Массивы, также как и переменные, мы можем присваивать:
int[] numbers = new int[] { 1, 2, 3, 5 };
int[] figures = numbers;
figures[2]=30;
System.out.println(numbers[2]); // равно 30
Здесь два массива, второму присваивается первый массив.
Однако на самом деле при
присвоении переменная figures будет хранить ссылку на область в памяти, где находится массив.
В итоге и figures и numbers будут указывать на один и тот же массив, и если мы изменим элемент
в массиве figures figures[2]=30, то изменится и массив numbers, так как это фактически один и тот
же массив.
Чтобы такой проблемы избежать, надо использовать копирование массивов.
Для копирования используется метод Arrays.copyOf:
import java.util.Arrays;
public class Program {
public static void main(String[] args) {
int[] numbers = new int[] { 1, 2, 3, 5 };
int[] figures = Arrays.copyOf(numbers, numbers.length);
figures[2]=30;
System.out.println(numbers[2]); // равно 3
}
}
Метод Arrays.copyOf(numbers, numbers.length) принимает два параметра: первый параметр -
массив, который надо скопировать, а второй параметр - сколько элементов надо скопировать.
Сортировка
С помощью метода Arrays.sort можно отсортировать массив:
// элементы массива в произвольном порядке
int[] numbers = new int[] { 1, 7, 3, 5, 2, 6, 4 };
Arrays.sort(numbers);