Массивы

Java Syntax Pro
5 уровень , 0 лекция
Открыта

1. Массив — это контейнер элементов

Скорее всего вы слышали, что компьютеры могут обрабатывать громадные объемы информации. Условный оператор (if-else) и циклы (for, while), конечно, в этом помогают. Но далеко на них не уедешь, ведь обрабатываемые данные нужно как-то хранить.

На этот случай в Java, как и практически во всех языках программирования, есть такая отличная вещь как массивы (Array). Их еще называют таблицами.

Массив — это специальный объект, в котором можно хранить не одно значение, а несколько.

Массивы (Array) Java

Если раньше мы сравнивали переменную с коробкой (где можно хранить какое-нибудь значение), то массив — это скорее коробка, разделенная внутри на секции. У каждой секции в «коробке-массиве» есть ее номер. Нумерация, конечно же, с нуля...

Ну или можно провести еще одну аналогию. Давайте сравним обычный жилой дом и многоэтажку. Обычный дом занимает одна семья, а многоэтажка разбита на квартиры. Чтобы написать письмо семье, которая живет в обычном доме, надо указать его уникальный адрес. А чтобы написать письмо семье, которая живет в квартире, надо указать уникальный адрес дома и еще номер квартиры.

Так вот, переменная-массив — это переменная-многоэтажка. В ней можно хранить не одно значение, а несколько. В такой переменной есть несколько квартир (ячеек), к каждой из которых можно обратиться по ее номеру (индексу).

Для этого после имени переменной в квадратных скобках надо указать индекс ячейки, к которой обращаемся. Это довольно просто:

array[индекс] = значение;

Где аrray — это имя переменной-массива, индекс — номер ячейки в массиве, а значение — значение, которое мы хотим занести в указанную ячейку.

Но давайте для начала разберемся, как создавать массивы.


2. Создание массива элементов в Java

Создание массива элементов в Java

Допустим, вашей программе нужно где-то хранить 100 целых чисел. Скорее всего, для этого подошел бы массив. И как же его создать?

Если бы мы хотели хранить одно целое число, нам бы подошел тип int, ну а если мы хотим хранить 100 целых чисел, вероятно, нам нужен массив типа int. Вот как будет выглядеть код по его созданию:

int[] array = new int[100];

Давайте разберемся, что тут написано.

Как вы уже возможно догадались, слева от знака равенства у нас находится объявление переменной по имени array и типа int[]. После типа int следуют квадратные скобки, которые как бы намекают, что в «коробках» этого типа можно будет хранить не одно значение, а несколько.

Справа от знака равенства у нас написано «создание объекта» (слово new) на 100 элементов (ячеек) типа int. Тоже не слишком сложно.

Если бы мы хотели, например, создать массив на 20 ячеек для хранения вещественных чисел, код его создания выглядел бы примерно так:

double[] vals = new double[20];

Количество ячеек в массиве называют размером массива или длиной массива. А из-за способности хранить много значений массивы еще называют контейнерами.

Важный факт: размер контейнера массива нельзя изменить после создания.

Можно создать новый, но длину уже созданного контейнера поменять нельзя.



3. Работа с ячейками массива

Работа с ячейками массива

Хорошо, создавать массивы мы научились, а как правильно с ними работать?

Да практически так же, как и с обычными переменными, только после имени переменной-массива обязательно нужно указывать номер ячейки, с которой мы работаем.

Нумерация ячеек массива всегда начинается с нуля. Если у нас массив на 10 элементов, то номера (индексы) его ячеек 0..9, если массив на 200 элементов, то 0..199. И дальше по аналогии.

Примеры:

Код Пояснение
int[] a = new int[10];
a[2] = 4;
a[7] = 9;
a[9] = a[2] + a[5];
Создаем массив на 10 элементов типа int.
В ячейку с индексом 2 записываем значение 4.
В ячейку с индексом 7 записываем значение 9.
В ячейку с индексом 9 записываем сумму значений, которые хранятся в ячейках 2 (хранится 4) и 5 (хранится 0).

Вот что будет храниться в памяти после выполнения данного кода:

Работа с ячейками массива типа int

Колонка слева (серым цветом) — это номера (индексы) ячеек. В ячейках хранятся внесенные значения: 4, 9 и 4. Сразу после создания ячейки массива заполнены нулями.

Важно. Все ячейки массива имеют одинаковый тип данных. Если мы создали массив строк String, в его ячейках можно хранить только строки. Тип данных массива задается при его создании. Ни тип данных, ни длину массива в дальнейшем поменять нельзя.



Комментарии (683)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #6463865 Уровень 7
12 мая 2026

// Задача 6-1-3: Реализуй метод main(String[]), который меняет знак
// элемента массива array на противоположный, если значение этого
// элемента чётное
public static int[] array = new int[]{-1, 2, 3, -4, -5};

public static void main(String[] args) {
    for (int i = 0; i < 5; i++) {
        array[i] = (array[i] % 2 == 0) ? array[i] * (-1) : array[i];
    }
    System.out.println(array[0]);
    System.out.println(array[1]);
    System.out.println(array[2]);
    System.out.println(array[3]);
    System.out.println(array[4]);
}
Anonymous #6463865 Уровень 7
7 мая 2026

//6-1-2
public class Solution {
    public static final String ODD = "Нечётный";
    public static final String EVEN = "Чётный";
    public static String[] strings = new String[5];

    public static void main(String[] args) {
        
        for (int i = 0; i < 5; i++) {
            strings[i] = (i % 2 == 0) ? EVEN : ODD;
        }

    }
}
Anonymous #6463865 Уровень 7
7 мая 2026

// Задача 6-1-1: Проинициализируй переменные intArray и doubleArray
// массивами соответствующих типов, размер которых равен 10.
int[] intArray = new int[10];
double[] doubleArray = new double [10];
Sterben Уровень 6
29 апреля 2026
for (int i = 0; i <= 4; i++) { array[i] = (array[i]%2) == 0 ? (array[i]*-1):array[i]; }
Эрик Вахер Уровень 6
1 февраля 2026
Такая фигня эти 2 задания
Andrey Уровень 2
6 января 2026
Плохое объяснение темы. Нет примеров как работать с массивами. Но в целом всем плевать. Хорошо есть нейронки которые нормально объясняют.
Soda Уровень 19
17 декабря 2025
package com.javarush.task.pro.task05.task0502; /* Четные и нечетные ячейки массива */ public class Solution { public static final String ODD = "Нечётный"; public static final String EVEN = "Чётный"; public static String[] strings = new String[5]; public static void main(String[] args) { for(int i = 0; i<strings.length; i++){ if (i%2==0){ strings[i] = EVEN; } else { strings[i] = ODD; } } System.out.print("index = 0"); System.out.println(" value = " + strings[0]); System.out.print("index = 1"); System.out.println(" value = " + strings[1]); System.out.print("index = 2"); System.out.println(" value = " + strings[2]); System.out.print("index = 3"); System.out.println(" value = " + strings[3]); System.out.print("index = 4"); System.out.println(" value = " + strings[4]); } }
Роман Зарубин Уровень 8
28 ноября 2025
Работаем !
R Уровень 6
5 ноября 2025
ТВОЮ Ж, массивы это просто жесть, что на учебе не понимал, что тут глазею сижу(понять пытаюсь)
C0N5P1RACY Уровень 1
27 ноября 2025
Все не так сложно как кажется, тема довольно легкая если ее "визуализировать". Обычный (одномерный) массив это просто строчка ячеек, в ячейках какие то данные, просто строчка. Двумерный массив (int[][]) чуть сложнее, это уже не просто строчка, а несколько строк в ряд, представим просто строчку с тремя ячейками, а под ней еще две такие же, вот тебе и int[3][3], хотя конечно не обязательно что бы они были одинаковые, чаще размеры разные у строк Трехмерный массив (int[][][]) уже визуализировать сложнее, но проще всего это сделать так, представим куб, который состоит из строк, под каждой строкой еще строка, тоесть, по оси Х у нас строки, по оси Y ряды (тоесть новые строки, начало новых строк), а по третьей оси, Z, у нас еще ряд таких же X и Y А что касается массивов которые больше трехмерных, многомерные, то тут можно представить их как группу из сколько - то кубов, допустим две группы, в каждой группе по 2 куба, в каждом кубе по 6 рядов и 5 строк, вот мы и представили четырехмерный массив Далее так же с пятимерным, шестимерным и тд, все разбивается на группы, группа в группе, группа в группе в группе в группе в которой кубы в которых ряды в которых строки в которых ячейки Не так сложно если представить это все и нарисовать в тетрадке :)
TrofimBadabum Уровень 27
22 октября 2025
public static int[] array = new int[]{-1, 2, 3, -4, -5}; public static void main(String[] args) { for (int i = 0;i<array.length; i++){ if (array[i] % 2 ==0){ array[i] = -array[i]; } } System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); System.out.println(array[3]); System.out.println(array[4]); }
12 февраля 2026
public static int[] array = new int[]{-1, 2, 3, -4, -5}; public static void main(String[] args) { //напишите тут ваш код for (int i = 0; i < array.length; i++) { if (array[i] % 2 == 0) { array[i] = -array[i]; } } for (int num : array) { System.out.println(num); } } }
Elena Уровень 6
13 февраля 2026
У меня такое же решение, только я умножала на -1