Массивы ·
‹ Previous Next ›
⏱ 5 min read Modified: 2026-07-13

Одномерные массивы в Java

Что такое массив (array)? Это структура данных, существующая практически в каждом языке программирования, которая позволяет хранить группу однотипных значений под общим именем. В этом уроке разберём одномерные массивы в Java: как их объявлять, инициализировать, узнавать длину и перебирать элементы.

1. Что такое массив?

Представим, что у вас есть приют для бездомных животных, в котором пять котов. Как зовут каждого, вы не помните, но у каждого есть жетончик с номерком, который позволяет идентифицировать животное. Можно сказать, что это и есть массив «котики» размером пять. Обратите внимание: индексация начинается с нуля — так принято в Java. Если бы не было возможности создавать массивы, пришлось бы объявлять пять переменных и придумывать им имена, что не очень удобно.

Пять котов с номерками как элементы одномерного массива в Java

В Java можно создавать массивы любой размерности — одномерные, двумерные, трехмерные и так далее. Начнем с одномерного массива.

2. Объявление массива

Одномерный массив в Java — это список переменных одного типа. Чтобы создать массив, нужно сначала объявить переменную массива требуемого типа.

Общая форма объявления одномерного массива выглядит следующим образом:

тип[] имяПеременной;

Параметр тип обозначает тип элемента массива, называемый также базовым типом. Это может быть как примитивный тип (int, double, boolean и т. д.), так и ссылочный (например, String).

Квадратные скобки можно ставить как после типа, так и после имени переменной. Более правильным вариантом считается указание скобок после типа — так тип и скобки находятся в одном месте, и с первого взгляда понятно, что перед вами массив такого-то типа:

int monthDays[];        // допустимо, но не рекомендуется
double[] monthSalaries; // рекомендуемый стиль

3. Инициализация массива с помощью new

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

имяПеременной = new тип[размер];

Массив может быть объявлен и инициализирован одной строкой:

int[] values = new int[45];

Рассмотрим пример создания массива типа int размером 12. После выполнения строки int[] monthDays = new int[12] массив из 12 элементов создан. Каждому элементу присваивается значение по умолчанию для заданного типа:

Базовый тип массива Значение по умолчанию
byte, short, int, long 0
float, double 0.0
char '\u0000' (нулевой символ)
boolean false
Ссылочные типы (String и др.) null

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

public class ArrayExample1 {
    public static void main(String[] args) {
        int[] monthDays = new int[12];
        monthDays[0] = 31;
        monthDays[1] = 28;
        monthDays[2] = 31;
        monthDays[3] = 30;
        monthDays[4] = 31;
        monthDays[5] = 30;
        monthDays[6] = 31;
        monthDays[7] = 31;
        monthDays[8] = 30;
        monthDays[9] = 31;
        monthDays[10] = 30;
        monthDays[11] = 31;
        System.out.println("В апреле " + monthDays[3] + " дней.");
    }
}

Программа выведет: В апреле 30 дней.

4. Блок инициализации массива

Если значения элементов известны заранее, можно использовать блок инициализации массива. Вместо new int[12] в фигурных скобках через запятую перечисляются значения элементов. Размер массива компилятор выводит из количества указанных элементов:

public class ArrayExample2 {
    public static void main(String[] args) {
        int[] monthDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        System.out.println("В апреле " + monthDays[3] + " дней.");
    }
}

5. Безымянный (анонимный) массив

Существует и третья форма создания массива — безымянный массив, его также называют анонимным. Он используется в двух случаях.

Первый — вы объявили и инициализировали массив testScores размера четыре, но потом по какой-то причине он должен быть заменён массивом из трёх элементов. Использовать повторно блок инициализации нельзя — будет ошибка компиляции:

int[] testScores = {1, 2, 3, 4};
...
testScores = {4, 7, 2}; // ошибка компиляции

Но можно использовать безымянный массив, который создаст новый массив в памяти. Форма записи безымянного массива — это комбинация первых двух:

testScores = new int[]{4, 7, 2};

Второй случай — передача массива в метод. В следующем примере метод print принимает на вход массив типа int. При вызове метода в качестве аргумента можно передать безымянный массив:

public class ArrayExample3 {
    public static void main(String[] args) {
        int[] testScores = {1, 2, 3, 4};
        for (int element : testScores) {
            System.out.print(element + " ");
        }
        System.out.println();
        testScores = new int[]{4, 7, 2};
        for (int element : testScores) {
            System.out.print(element + " ");
        }
        System.out.println();

        print(new int[]{4, 6, 2, 3});
    }

    public static void print(int[] array) {
        for (int element : array) {
            System.out.print(element + " ");
        }
    }
}

6. Длина массива и перебор элементов

Узнать длину массива (количество его элементов) можно с помощью поля length:

int[] monthDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
System.out.println(monthDays.length); // 12

Важно

У массива length — это поле, а не метод: пишется без скобок. Не путайте с length() у String и size() у коллекций — на этой мелочи часто спотыкаются на собеседованиях.

Поле length удобно использовать для перебора элементов в цикле for. Так как индексация начинается с нуля, индекс последнего элемента равен length - 1:

int[] scores = {90, 75, 82, 68};
for (int i = 0; i < scores.length; i++) {
    System.out.println("Элемент с индексом " + i + ": " + scores[i]);
}

Если индекс не нужен, элементы перебирают циклом for-each — он короче и защищает от выхода за границы массива:

for (int score : scores) {
    System.out.println(score);
}

При обращении по несуществующему индексу (например, scores[4] для массива из четырёх элементов) компилятор ошибку не покажет, но во время выполнения программа завершится с исключением ArrayIndexOutOfBoundsException.

Важно

Размер массива в Java задаётся при создании и не может быть изменён. Если количество элементов заранее неизвестно или должно меняться, используйте коллекции, например ArrayList.

Подробный разбор длины массива — для одномерных и многомерных массивов, с дополнительными примерами — смотрите в отдельном уроке «Длина массива в Java».

Часто задаваемые вопросы

Можно ли изменить размер массива после создания?

Нет, размер массива фиксируется в момент создания. Чтобы «расширить» массив, создают новый массив большего размера и копируют в него элементы (например, методом Arrays.copyOf). Если размер должен меняться часто, удобнее использовать ArrayList.

Как вывести одномерный массив на экран?

Проще всего вызвать System.out.println(Arrays.toString(array)) — метод вернёт строку вида [1, 2, 3]. Если печатать массив напрямую через println(array), вы увидите не элементы, а нечто вроде [I@1b6d3586 — тип и хеш-код объекта. Также можно перебрать элементы циклом for или for-each.

Как перевернуть массив в Java?

Классический способ — цикл до середины массива с обменом элементов: первый меняется местами с последним, второй — с предпоследним и так далее. Для списков есть готовый метод Collections.reverse(list), а массив можно обернуть через Arrays.asList (для ссылочных типов).

Презентация с видео на Patreon →

Video Explanation

Prefer video format? Watch this lesson with examples and explanations.

Comments

Please log in or register to have a possibility to add comment.