Массив — это структура данных, в которой хранятся однотипные элементы.
// Создание массива целых чисел длинной 5
// Длинна массива — количество элементов, под который рассчитан массив
int[] arr = new int[5];
// Создание массива строк длинной 10
String arrOfStr[] = new String[10];
// Объявление массива
int[] arr2;
arr2 = new int[8];
Инициализация — это заполнение массива конкретными значениями. Доступ к элементам массива (для записи в него значения, вывода на экран или других операций) происходит по его индексу. Индексация в массиве начинается с нуля
// Запись значений в массив
int[] = new int[3];
// Начинаем с нуля
arr[0] = 1;
arr[1] = 3;
arr[2] = 5;
arr[3] = 9; // Ошибка!
String[] words = new String[3];
worsd[0] = "Hello";
words[1] = ",";
words[2] = "world";
// Вывод на экран элементов массива
System.out.println("Первый элемент: " + arr[0]); //=> "Первый элемент: 1"
System.out.println("Второй элемент: " + arr[1]); //=> "Второй элемент: 3"
System.out.println("Третий элемент: " + arr[2]); //=> "Третий элемент: 5"
// Инициализацию можно совместить с объявлением и созданием массива
int[] arr = {1, 6, 2, 3, 4, 5, 6};
System.out.println("Первый элемент: " + arr[0]); //=> "Первый элемент: 1"
System.out.println("Третий элемент: " + arr[2]); //=> "Третий элемент: 2"
String[] names = new String[2];
System.out.println("Первый элемент names: " + names[0]);
// => "Первый элемент names: null"
names[0] = "Yakovlev Egor";
System.out.println("Снова печатаем первый элемент names: " + names[0]);
// => "Снова печатаем первый элемент names: Yakovlev Egor"
names[0] = "Ivanov Ivan";
System.out.println("И снова печатаем первый элемент names: " + names[0]);
// => "И снова печатаем первый элемент names: Ivanov Ivan"
// final для массивов
final int[] numbers = new int[2];
numbers[0] = 1;
numbers[1] = 2;
System.out.println(numbers[0]); //=> 1
numbers[0] = 3;
numbers[1] = 4;
System.out.println(numbers[0]); //=> 3
// Длинна массива
int length = arr.length;
String[] names = new String[5];
names[0] = "Иванов Иван Иванович";
names[1] = "Егоров Егор Егорович";
names[2] = "Яковлев Яков Яковлевич";
names[3] = "Сергеев Сергей Сергеевич";
names[4] = "Марьева Мария Александровна";
// Печать элементов массива в цикле
// При помощи цикла for
for (int i = 0; i < names.length; i++) {
System.out.println("Человек под номером " + i + " : " + names[i]);
}
// Для массивов удобно использовать цикл for of,
// если нужно перебрать весь массив
for (String name: names) {
System.out.println(name);
}
// Получение строкового представления массива
int[] numbers = new int[3];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
System.out.println(Arrays.toString(numbers)); // => [1, 2, 3]
// Заполнение массива
int[] arr2 = new int[3];
Arrays.fill(arr2, 5);
System.out.println(Arrays.toString(numbers)); // => [5, 5, 5]
// Заполнение массива в цикле
int[] arr3 = new int[4];
for (int i = 0; i < arr3.length; i++) {
arr3[i] = i;
}
System.out.println(Arrays.toString(arr3)); // => [0, 1, 2, 3]
// Массив как возвращаемое значение
static String[] getFilledClassList() {
String[] students = new String[3];
students[0] = "Петров Петр";
students[1] = "Иванов Иван";
students[2] = "Сергеев Сергей";
return students;
}
String[] students = getFilledClassList();
System.out.println(students[1]); // => "Иванов Иван"
// Массив как аргумент метода
static double getAvgTemperature(double[] temperatures) {
double result = .0;
for (double temperature: temperatures) {
result += temperature;
}
return result / temperatures.length;
}
double[] temperatures = new double[5];
temperatures[0] = -1.5;
temperatures[1] = -10.1;
temperatures[2] = 0.3;
temperatures[3] = 10.2;
temperatures[4] = 25.5;
double avgTemperature = getAvgTemperature(temperatures);
System.out.println(avgTemperature); //=> 2.92
// Создание двумерного массива
int[][] table = new int[2][2];
// Заполнение массива
table[0][0] = 1;
table[0][1] = 2;
table[1][0] = 3;
table[1][1] = 4;
int[][] arr = new int[2][];
arr[0] = new int[6];
arr[1] = new int[8];
arr[0][4] = 1;
// Изменение элементов массива
table[0][0] = -1;
System.out.println(table[0][0]); //=> -1
// Перебор многомерного массива в цикле for
for (int i = 0; i < table.length; i++) {
for (int k = 0; k < table[i].length; k++) {
System.out.println("i = " + i + " k = " + k + " => " + table[i][k]);
}
}
// Перебор многомерного массива в цикле for of
for (int[] arr: table) {
for (int a: arr) {
System.out.println(a);
}
}
// Трехмерный массив
int[][][] array3d = new int[1][2][2];
array3d[0][0][0] = 1;
array3d[0][0][1] = 2;
array3d[0][1][0] = 3;
array3d[0][1][1] = 4;
for (int[][] arr2d: array3d) {
for (int[] arr: arr2d) {
for (int a: arr) {
System.out.println(a);
}
}
}
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу