
В Java массив представляет собой структуру данных фиксированной длины, где все элементы имеют одинаковый тип. Индексация начинается с нуля, что важно учитывать при работе с циклами и доступом к данным. Размер массива задаётся при создании и изменить его позже невозможно.
Для объявления массива используется синтаксис с указанием типа и квадратных скобок. Например, int[] numbers = new int[5]; создаёт массив целых чисел длиной 5. На момент инициализации все элементы автоматически получают значения по умолчанию: 0 для числовых типов, false для логического и null для ссылочных.
Массив можно заполнить при объявлении: String[] names = {«Анна», «Иван», «Олег»};. Такой способ удобен, если значения известны заранее. Для перебора элементов чаще всего применяются циклы for или for-each, что позволяет работать с данными без ручного обращения к индексам.
При разработке стоит помнить, что обращение к несуществующему индексу вызовет ArrayIndexOutOfBoundsException. Чтобы избежать ошибок, рекомендуется использовать свойство array.length, которое возвращает фактический размер массива и помогает корректно строить циклы.
Объявление массива с указанием типа данных

В Java массив создаётся с обязательным указанием типа элементов. Тип данных определяет, какие значения допустимы для хранения. Сначала указывается тип, затем имя массива и квадратные скобки.
Примеры базового объявления:
int[] numbers;
double[] values;
String[] names;
После объявления массив нужно инициализировать с помощью оператора new или литералов:
int[] numbers = new int[5]; // массив из 5 целых чисел
double[] values = new double[3]; // массив из 3 вещественных чисел
String[] names = {"Анна", "Иван", "Олег"}; // массив строк
Сравнение вариантов объявления:
| Запись | Особенности |
|---|---|
int[] a; |
Рекомендуемый вариант, скобки рядом с типом |
int a[]; |
Поддерживается, но снижает читаемость при множественных объявлениях |
Тип данных массива всегда фиксирован, а размер задаётся при инициализации и не изменяется.
Создание массива фиксированного размера
В Java размер массива задаётся при его создании и не может изменяться в дальнейшем. Для объявления необходимо указать тип элементов, имя массива и количество ячеек:
int[] numbers = new int[5];
В этом примере создаётся массив целых чисел длиной 5. Индексация начинается с нуля, поэтому доступ к элементам осуществляется через numbers[0] до numbers[4].
При создании массив автоматически заполняется значениями по умолчанию: для чисел это 0, для boolean – false, для ссылочных типов – null.
Пример массива строк фиксированной длины:
String[] names = new String[3];
После инициализации можно присвоить значения:
names[0] = "Анна";
names[1] = "Иван";
names[2] = "Мария";
Попытка обратиться к индексу за пределами диапазона вызовет исключение ArrayIndexOutOfBoundsException, поэтому длину всегда нужно проверять с помощью свойства array.length.
Инициализация массива при объявлении
Массив в Java можно заполнить значениями сразу при создании. Такой способ часто используют, когда набор элементов заранее известен и не будет меняться.
Примеры синтаксиса:
int[] numbers = {1, 2, 3, 4, 5};String[] fruits = {"Яблоко", "Груша", "Апельсин"};char[] vowels = {'a', 'e', 'i', 'o', 'u'};
Особенности:
- Размер массива определяется количеством элементов внутри фигурных скобок.
- Ключевое слово
newв таких конструкциях не требуется. - Тип всех элементов должен совпадать с объявленным типом массива.
Когда необходимо использовать new при инициализации:
int[] numbers;
numbers = new int[]{10, 20, 30};
Такой вариант применяют, если объявление и заполнение массива выполняются в разных строках.
Доступ к элементам массива по индексу

Каждый элемент массива в Java имеет уникальный номер – индекс. Индексация начинается с 0, поэтому первый элемент массива доступен по индексу 0, второй – по индексу 1 и так далее. Последний элемент всегда имеет индекс array.length — 1.
Пример обращения к элементам массива:
int[] numbers = {10, 20, 30, 40};
int first = numbers[0]; // 10
int last = numbers[numbers.length - 1]; // 40
Если указать индекс меньше 0 или больше либо равный длине массива, программа вызовет ArrayIndexOutOfBoundsException. Поэтому перед обращением к элементу рекомендуется проверять границы:
int index = 3;
if (index >= 0 && index < numbers.length) {
System.out.println(numbers[index]);
}
Доступ по индексу выполняется за константное время O(1), что делает массивы удобными для хранения данных с частым чтением по известным позициям.
Изменение значений элементов массива

Доступ к элементам массива осуществляется по индексу, начиная с нуля. Чтобы изменить значение, достаточно обратиться к нужному индексу и присвоить новое.
int[] numbers = {10, 20, 30, 40};
numbers[2] = 99; // теперь массив: {10, 20, 99, 40}
Ключевые моменты:
- Индекс всегда целое число от 0 до длины массива минус 1.
- При обращении к индексу вне диапазона возникает исключение
ArrayIndexOutOfBoundsException. - Изменение значения не влияет на размер массива, он фиксирован.
Рекомендации при изменении значений:
- Перед записью проверяйте индекс через условие
if (index >= 0 && index < array.length). - Используйте циклы
forилиfor-each, если требуется изменить несколько элементов по условию. - Для массовой замены значений можно применять класс
Arrays, напримерArrays.fill(array, value).
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
numbers[i] = numbers[i] * 2;
}
}
Перебор массива с помощью цикла for и foreach
В Java массивы можно перебирать с использованием традиционного цикла for или улучшенного цикла foreach. Цикл for позволяет управлять индексом и выполнять операции с конкретными элементами по позиции:
Пример с for:
int[] numbers = {10, 20, 30, 40};
for (int i = 0; i < numbers.length; i++) {
System.out.println("Элемент " + i + ": " + numbers[i]);
}
Цикл foreach удобен для прямого перебора значений без необходимости отслеживать индекс:
Пример с foreach:
for (int number : numbers) {
System.out.println("Значение: " + number);
}
Использование for оправдано, когда нужен индекс для модификации элементов или условий на основе позиции. Foreach оптимален для чтения всех значений и уменьшает вероятность ошибок с индексами.
Для многомерных массивов вложенные циклы for позволяют точно контролировать каждый уровень:
int[][] matrix = {{1, 2}, {3, 4}};
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.println("Элемент [" + i + "][" + j + "]: " + matrix[i][j]);
}
}
Foreach также поддерживает многомерные массивы, но индексировать элементы невозможно напрямую, что ограничивает его использование при необходимости доступа к позициям.
Использование класса Arrays для работы с массивами
Класс java.util.Arrays предоставляет методы для эффективной работы с массивами. Для сортировки числового массива используйте Arrays.sort(array). Например, int[] numbers = {5, 2, 9}; Arrays.sort(numbers); упорядочит элементы по возрастанию.
Для поиска значения применяется метод Arrays.binarySearch(array, key). Массив должен быть предварительно отсортирован, иначе результат будет некорректным. Например, int index = Arrays.binarySearch(numbers, 2); вернёт индекс элемента 2.
Для сравнения массивов применяются Arrays.equals(array1, array2) и Arrays.deepEquals(array1, array2) для многомерных массивов. Эти методы возвращают true, если все элементы совпадают по значению и порядку.
Копирование массивов выполняется методами Arrays.copyOf(array, newLength) и Arrays.copyOfRange(array, from, to). Первый создаёт новый массив указанной длины, второй копирует элементы в заданном диапазоне, не изменяя исходный массив.
Для заполнения массива одним значением используется Arrays.fill(array, value). Например, Arrays.fill(numbers, 0); заменит все элементы массива на 0.
Методы класса Arrays обеспечивают безопасное и лаконичное выполнение операций без ручного перебора элементов, сокращая количество ошибок и упрощая код.
Вопрос-ответ:
Как создать массив в Java с фиксированным размером?
В Java массив можно создать, указав его тип и размер. Например, чтобы создать массив из пяти целых чисел, пишут: int[] numbers = new int[5]; Это создаст массив с индексами от 0 до 4, и каждый элемент автоматически получит значение 0. После создания массива можно присваивать значения конкретным элементам по индексу, например: numbers[0] = 10;.
Можно ли создать массив и сразу заполнить его значениями?
Да, Java позволяет одновременно объявлять массив и присваивать ему значения. Для этого используют фигурные скобки. Например: String[] fruits = {"яблоко", "банан", "груша"}; В этом случае размер массива определяется автоматически количеством элементов. Такой способ удобен для небольшого количества известных значений.
Как получить доступ к элементам массива и изменить их?
Элементы массива в Java обращаются по индексу, начиная с нуля. Например, чтобы получить первый элемент массива numbers, пишут: int first = numbers[0]; Для изменения элемента используют присваивание по индексу: numbers[2] = 15;. При попытке обратиться к индексу вне диапазона, программа вызовет исключение ArrayIndexOutOfBoundsException.
Что такое многомерный массив и как его создать?
Многомерный массив — это массив массивов. Самый распространённый случай — двумерный массив, который можно представить как таблицу с строками и столбцами. Пример создания двумерного массива из целых чисел: int[][] matrix = new int[3][4]; Здесь создаётся массив с 3 строками и 4 столбцами. Доступ к элементу выполняется через два индекса: matrix[1][2] = 7; — это значение во второй строке и третьем столбце.
Как узнать длину массива в Java?
Каждый массив в Java имеет свойство length, которое хранит количество элементов. Например, int size = numbers.length; вернёт размер массива numbers. Это свойство полезно для циклов: for (int i = 0; i < numbers.length; i++) { ... }, так как цикл будет корректно проходить по всем элементам массива независимо от его размера.
