Если программе необходимо работать с несколькими значениями одного и того же типа данных, вы можете объявить переменную для каждого числа. Например, программа, отображающая номера лотереи:
int lotteryNumber1 = 16;
int lotteryNumber2 = 32;
int lotteryNumber3 = 12;
int lotteryNumber4 = 23;
int lotteryNumber5 = 33;
Более элегантный способ работы со значениями, которые могут быть сгруппированы вместе, – использовать массив. Массив – это контейнер, содержащий фиксированное количество значений типа данных. В приведенном выше примере номера лотереи могут быть сгруппированы в массив int:
int [] lotteryNumbers = {16,32,12,23,33 , 20};
Думайте о массиве как о ряду ящиков. Количество ящиков в массиве не может измениться. Каждое поле может содержать значение, если оно имеет тот же тип данных, что и значения, содержащиеся в других полях. Вы можете заглянуть внутрь блока, чтобы увидеть, какое значение он содержит, или заменить содержимое блока другим значением. Говоря о массивах, блоки называются элементами.
Объявление и инициализация массива
Оператор объявления для массива: аналогично тому, который используется для объявления любой другой переменной. Он содержит тип данных, за которым следует имя массива – единственное отличие заключается во включении квадратных скобок рядом с типом данных:
int [] intArray;
float [] floatArray;
Приведенные выше операторы объявления сообщают компилятору, что
intArray
переменная – это массив
int
,
floatArray
– массив
float
и
charArrayintArray = new int [10];Число в скобках определяет, сколько элементов содержит массив. Приведенный выше оператор присваивания создает массив int из десяти элементов. Конечно, нет причин, по которым объявление и присвоение не могут происходить в одном операторе:
float [] floatArray = new float [10];Массивы не ограничиваются примитивными типами данных. Можно создавать массивы объектов:
String [] names = new String [5];Использование массива
После инициализации массива элементам могут быть присвоены значения с помощью индекса массива. Индекс определяет позицию каждого элемента в массиве. Первый элемент имеет значение 0, второй элемент - 1 и так далее. Важно отметить, что индекс первого элемента равен 0. Легко подумать, что, поскольку в массиве десять элементов, индекс будет от 1 до 10, а не от 0 до 9.. Например, если мы вернемся к примеру с лотерейными номерами, мы можем создать массив, содержащий 6 элементов, и присвоить им номера лотереи:
int [] lotteryNumbers = new int [6];lotteryNumbers [0] = 16;lotteryNumbers [1] = 32;lotteryNumbers [2] = 12;lotteryNumbers [3] = 23;lotteryNumbers [4] = 33;Существует ярлык для заполнения элементов в массиве, помещая значения для элементов в оператор объявления:
int [] lotteryNumbers = {16,32,12,23,33,20};Значения для каждого элемента помещаются в пару фигурных скобок. Порядок значений определяет, какому элементу присваивается значение, начиная с позиции индекса 0. Количество элементов в массиве определяется количеством значений в фигурных скобках.
Чтобы получить значение элемента, используется его индекс:
System.out.println ("Значение первого элемента -" + lotteryNumbers [0]);Чтобы узнать, сколько элементов имеет массив, используйте поле длины:
System.out.println ("Массив lotteryNumbers содержит элементы" + lotteryNumbers.length + ");Примечание. Распространенной ошибкой при использовании метода длины является забвение значения длины в качестве позиции индекса. Это всегда будет приводить к ошибке, поскольку позиции индекса в массиве от 0 до длины - 1.
Многомерные массивы
Массивы, которые мы рассматривали до сих пор, известны как одномерные (или одномерные) массивы. Это означает, что у них есть только один ряд элементов. Однако массивы могут иметь более одного измерения. На самом деле многомерное - это массив, содержащий массивы:
int [] [] lotteryNumbers = {{16,32,12,23,33,20}, {34,40,3,11,33,24}};Индекс многомерного массива состоит из двух чисел:
System.out.println ("Значение элемента 1,4 равно" + lotteryNumbers [1] [4]);Хотя длина массивов, содержащихся в многомерном массиве, не обязательно должна быть одинаковой длины:
String [] [] names = new String [5] [7];Копирование массива
Чтобы скопировать массив, самый простой способ - использовать метод
arraycopyкласса System. Метод
arraycopyможно использовать для копирования всех элементов массива или их части.. В
arraycopypublic static void arraycopy передается пять параметров (Object src, int srcPos, Object dest, int destPos, int length)Например, чтобы создать новый массив, содержащий последние четыре элемента
intint [] lotteryNumbers = {16,32,12,23,33,20};int [] newArrayNumbers = new int [4 ];Поскольку массивы имеют фиксированную длину,
arraycopyЧтобы расширить свои знания о массивах, вы можете узнать об управлении массивами с помощью класса Arrays и создании динамических массивов (т. Е. Массивов, когда количество элементов не является фиксированным числом) с помощью класса ArrayList.