undefined

Массивы

Java Syntax
7 уровень , 1 лекция
Открыта

— Привет, Амиго!

— День добрый, Элли!

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

Массивы - 1

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

— Да, тут все понятно.

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

— Надеюсь.

— Переменная-многоэтажка (переменная-массив) может быть любого типа, надо лишь вместо «ИмяТипа имяПеременной», написать «ИмяТипа[] имяПеременной».

— Примеры:

Код Описание
String[] list = new String[5];
Создание массива на 5 элементов типа «строка»
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
На экран будет выведено пять значений “null”.

Чтобы получить значение, которое хранится в определенной ячейке массива, используйте квадратные скобки и номер ячейки

int listCount = list.length;
listCount получит значение 5 – количество ячеек в массиве list.
list.length хранит длину(количество ячеек) массива.
list[1] = "Mama";
String s = list[1];
При присваивании объектов ячейкам массива нужно указывать индекс/номер ячейки в квадратных скобках.
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
Вывод всех значений массива на экран.

— Как интересно.

— Переменная-массив требует дополнительной инициализации.

— ?

— Обычную переменную нужно было просто объявить и уже можно присваивать ей различные значения. С массивом все немного сложнее.

— Сначала надо создать контейнер на N элементов, а затем в него уже можно класть значения.

Код Описание
String[] list = null;
Переменная-массив list, ее значение – null. Она может хранить только контейнер для элементов. Контейнер надо создавать отдельно.
String[] list = new String[5];
Мы создаем контейнер на 5 элементов и кладем ссылку на него в переменную list. Этот контейнер содержит 5 квартир (ячеек) с номерами 0, 1, 2, 3, 4.
String[] list = new String[1];
Мы создаем контейнер на 1 элемент и кладем ссылку на него в переменную list. Чтобы занести что-то в этот контейнер надо написать list[0] = “Yo!”;
String[] list = new String[0];
Мы создаем контейнер на 0 элементов и кладем ссылку на него в переменную list. Ничего в этот контейнер занести нельзя!

— Ага. Кое-что проясняется.

— Основные факты о массивах:

1) Java массив состоит из множества ячеек.

2) Доступ к конкретной ячейке идёт через указание её номера.

3) Все ячейки одного типа.

4) Начальное значение для всех ячеек – null, для примитивных типов – 0, 0.0 (для дробных), false (для типа boolean). Точно такое же, как и у простых неинициализированных переменных.

5) String[] list — это просто объявление переменной. Сначала нужно создать массив (контейнер) и положить его в эту переменную, а потом уже им пользоваться. См. пример ниже.

6) Когда мы создаём объект массив (контейнер), нужно указать, какой он длины – сколько в нем ячеек. Это делается командой вида: new TypeName[n];

Массивы - 2

— Примеры:

Код Описание
String s;
String[] list;
s равно null
list равно null
list = new String[10];
int n = list.length;
Переменная list хранит ссылку на объект — массив строк из 10 элементов.
n равно 10
list = new String[0];
Теперь list содержит массив из 0 элементов. Массив есть, но хранить элементы он не может.
list = null;
System.out.println(list[1]);
Будет сгенерировано исключение (ошибка программы) – программа аварийно завершится. list содержит пустую ссылку – null
list = new String[10];
System.out.println(list[10]);
Будет сгенерировано исключение (ошибка программы) – выход за границы массива.

Если list содержит 10 элементов/ячеек, то их разрешённые индексы: 0,1,2,3,4,5,6,7,8,9 – всего 10 штук.

Комментарии (243)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Taras 35 уровень, Киев
10 марта 2021
На канале есть блок коротких задач по массивам, вроде что будет выведено на экран? И ответиы 0, 1, 2.... или 1, 2, 3... telegram @javaquiz_mentor
Игорь 28 уровень, Братск
16 января 2021
Создал сервер в дискорде для совместного прохождения курса JavaRush. Если кто-то хочет обсуждать сложные лекции, задачи, получать помощь, тогда перейдите по ссылке- нажав здесь.
Oleg 7 уровень, Санкт-Петербург
24 декабря 2020
Опять потратил материю а задач нет( Хитрая система.
UVM 8 уровень
7 декабря 2020
Настоятельно рекомендую перед этой лекцией прочитать!!! https://javarush.ru/groups/posts/massivy-java https://javarush.ru/groups/posts/1932-koe-chto-o-massivakh https://javarush.ru/groups/posts/1933-klass-arrays-i-ego-ispoljhzovanie https://javarush.ru/groups/posts/klass-arraylist http://proglang.su/java/arrays Читать не бегло!
Игорь 28 уровень, Братск
28 ноября 2020
Создал сервер в дискорде для совместного прохождения курса JavaRush. Если кто-то хочет обсуждать сложные лекции, задачи, получать помощь, тогда перейдите по ссылке- нажав здесь.
Сергей 23 уровень, Киев
21 ноября 2020
ну Здрастє😁
Alexandra Averyanova 8 уровень, Санкт-Петербург
20 ноября 2020
как же сладко, хахаха) убила 2 часа на решение крайней задачи прошлой лекции ( спойлер: не решила) и сразу начинается нужная тема, хаха) 😅
Денис Ferondo 14 уровень, Yalta
15 ноября 2020
та ладно..еще и лекции по массивам сразу дали)) https://javarush.ru/groups/posts/massivy-java https://javarush.ru/groups/posts/1932-koe-chto-o-massivakh
Алексей 10 уровень, Санкт-Петербург
10 ноября 2020
Странно, что в на прошлой лекции были задачки с коллекциями , а тут массивы разбираем
Дмитрий 27 уровень, Санкт-Петербург
7 ноября 2020
Ставь лайк если уже изучил массивы по гуглу, решая прошлые задачи. Репост - если оставил "Массивные" задачи на потом