Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Синтаксис Java: Массивы

Массивы представляют собой последовательность элементов одного типа, например чисел или строк. Задача массива — представить такие списки в виде единой структуры, которая позволяет работать с ними как с единым целым, будь то курсы на Хекслете или друзья в вашей любимой социальной сети.

Определение массива

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

// Массив - ссылочный тип
int[] numbers = {1, 2, 3};
String[] cars = {"kia", "bmw", "ford"};

// Массив может быть даже пустым
int[] fruits = {};

В примере создаются и сразу инициализируются (наполняются значениями) два массива. Один состоит из чисел, другой из строк. Тип массива задается как тип хранящихся элементов, соединенный с парными скобками, например, так int[].

Обратите внимание на именование переменных, содержащих массивы. Они во множественном числе. Это подчеркивает природу переменной и делает код проще для анализа.

Массивы в Java фиксированного размера, поэтому если мы хотим создать пустой массив, но не знаем заранее что должно быть внутри, мы можем создать пустой массив нужной длины и затем заполнить его нужными значениями:

// Это особый синтаксис создания массива, а не объектов по типу
// Обратите внимание на то, что скобки квадратные, а не круглые
int[] numbers = new int[3];
String[] cars = new String[3];
// И так далее для всех остальных типов

Здесь 3 - нужный размер массива, в переменной numbers будет зарезервировано место для трех переменных которые можно будет записать в массив в дальнейшем.

Вывод на экран

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

String[] cars = {"kia", "bmw", "ford"};
System.out.println(cars); // => java.lang.String;@27bc2616

Для печати нужно использовать метод Arrays.toString(), который формирует из массива строку. Затем эту строку можно вывести на экран:

import java.util.Arrays;

String[] cars = {"kia", "bmw", "ford"};
System.out.println(Arrays.toString(cars));
// => ["kia", "bmw", "ford"]

Получение данных

Элементы в массиве упорядочены слева направо. Каждый элемент имеет порядковый номер, называемый индексом. Индексация массива начинается с нуля. То есть первый элемент массива доступен по индексу 0, второй — по индексу 1 и так далее. Для извлечения элемента из массива по индексу используется свой синтаксис:

String[] animals = {"cats", "dogs", "birds"};
animals[0]; // "cats"
animals[1]; // "dogs"

// Последний индекс в массиве всегда меньше размера массива на единицу
// В этом массиве три элемента, но последний индекс равен двум
animals[2]; // "birds"

Узнать размер массива можно, обратившись к его свойству length.

String[] animals = {"cats", "dogs", "birds"};
animals.length; // 3

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

var i = 1;
String[] animals = {"cats", "dogs", "birds"};
animals[i]; // "dogs"

И даже так:

var i = 1;
var j = 1;
String[] animals = {"cats", "dogs", "birds"};
animals[i + j]; // "birds"

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

String[] animals = {"cats", "dogs", "birds"};
animals[someMethod()]; // "dogs"

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

String[] animals = {"cats", "dogs", "birds"};
animals[animals.length - 1]; // "birds"

Дополнительные материалы

  1. Именование в программировании

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 28 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»