Название | Java за неделю. Вводный курс |
---|---|
Автор произведения | Валерий Станиславович Яценков |
Жанр | Математика |
Серия | |
Издательство | Математика |
Год выпуска | 0 |
isbn | 9785449046840 |
Допускается равноценная, но более сложная синтаксическая конструкция:
int [] userAge = new int [] {28,32,19,44,52};
Аналогичным образом можно создать и инициализировать массив строковых значений:
String [] userName = {«Иван», «Петр», «Ольга», «Егор»};
Элементы массива можно инициализировать по отдельности:
userAge [0] = 28;
userAge [1] = 32;
Если массив должен содержать некие серийные данные, сформированные по определенному закону, то для инициализации массива удобно использовать цикл, последовательно перебирающий элементы массива.
5.1.2 Специальная форма оператора for
Специальная форма оператора for позволяет перебирать непосредственно элементы массива, не используя индексы. Конструкция оператора for в этом случае имеет вид:
for (тип переменная: массив) {
// Блок команд
}
Например, цикл для перебора значений массива userAge имеет вид:
for (int age: userAge) {
System.out.println (age);
}
В этом примере рабочая переменная age поочередно принимает значения всех элементов массива userAge. В теле цикла текущее значение переменной age выводится на печать. Таким образом, мы выводим на печать содержимое массива userAge.
При помощи специальной формы оператора for мы можем только читать текущие значения элементов массива. Для инициализации или модификации элементов массива следует использовать обычный цикл, в котором происходит перебор индексов массива в явном виде.
В примере из листинга 5.1 в первом цикле элементам массива even [] присваиваются четные значения от 2 до 20. Далее применяется специальная форма цикла for для вывода значений всех элементов массива на печать.
Листинг 5.1 Перебор элементов массива
public class Listing5_1 {
public static void main (String [] args) {
int [] even = new int [10];
// Инициализация массива
for (int i=0;i <10;i++) {
even [i] = i*2+2;
}
// Вывод значений элементов массива
for (int data: even) {
System.out.println (data);
}
}
}
5.1.3 Присваивание массивов
Переменные массивов относятся к переменным ссылочного типа. Это значит, что в переменной массива хранится ссылка на область памяти, в которой хранится массив. Следовательно, этой переменной можно присвоить ссылку на другой массив. Массивы должны быть одного и того же типа и размерности, но вот размер не обязательно должен совпадать, потому что переменной массива присваиваются не новые данные, а новая ссылка на них.
Операция присвоения массивов проста, но может привести к неочевидным последствиям. Рассмотрим простой пример присвоения:
int [] first = {10,20,30,40};
int [] second = new int [6];
second = first;
first [2] = 50;
В первой строке мы создаем массив из четырех элементов. Во второй строке объявляем массив из шести элементов. В третьей строке переменной второго массива присваиваем ссылку на первый массив. После выполнения команды обе переменных ссылаются на один и тот же массив. Как вы думаете, какое значение будет у элемента