#8 – Массивы данных. Одномерные и многомерные массивы

#8 – Массивы данных. Одномерные и многомерные массивы

Массивы позволяют хранить большой объем информации в одном месте. В языке Джава существуют одномерные и многомерные массивы данных. В ходе урока мы научимся создавать и взаимодействовать с различными массивами.

Видеоурок

Массивы позволяют хранить большой объем информации в одном месте. В языке Java можно найти несколько основных типов массивов. 


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

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


В массивах отсчет начинается с 0, поэтому первый элемент по индексу будет равен 0, второй - 1 и так далее.


Примеры создания массива:

char[] stroka; // Создание пустого массива
int numbers[]; // Не будет считаться ошибкой

int[] nums = new int[4];
nums[0] = 1; // Добавление элементов в массив из 4 элементов

int[] nums2 = new int[] { 1, 2, 3, 5 }; // Присвоение всех значений сразу

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


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

  • length - возвращает количество элементов в массиве. К примеру, создадим массив arr и укажем для него 3 элемента. При вызове функции будет выдано число 3: arr.length;
  • Arrays.copyOf - копирует один массив в другой. Пример:
int[] arr = new int[] { 1, 2, 3, 5 };
int[] some_new = Arrays.copyOf(arr, arr.length);
  • Arrays.sort - сортировка массива. Пример:
int[] numbers = new int[] { 1, 7, 3, 5, 2, 6, 4 };
 
Arrays.sort(numbers);


Многомерный массив

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


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


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

int[][] x = { { 0, 34, 2 }, { 3, 4, 5 } };

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

x[0][1] = 1; // Вместо 34 теперь будет 1

Исходный код

Весь код будет доступен после подписки на проект!

Задание к уроку

Наибольшее

Создайте массив, после чего найдите наибольший элемент массива

Посмотреть ответ

Решение:

int[] a = new int[] {-14, 23, 9, -4, 12, -1};
int max = 0; 
for (int i = 0; i < a.length; i++) { 
	if (a[i] > max) 
		max = a[i];
} 
System.out.println("Максимальный элемент: " + max);

Получить остальные домашние задания можно после подписки на проект

Большое задание по курсу

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

Также стоит посмотреть

Изучение таск-менеджера Gulp 4
5 уроков
Фреймворк Next JS / Изучение NextJS для начинающих
8 уроков
Уроки Angular для начинающих
11 уроков
Разработка на Android Studio / Приложение E-Commerce
9 уроков
Уроки React Native для начинающих / Разработка приложения с нуля
11 уроков
Three.js с нуля: Разработка сайта с 3Д Графикой
10 уроков
Комментарии (5)
Добавить комментарий

Катя 28 июня 2024 в 23:52

Добрый вечер, делала практическую часть урока, вроде, всё правильно, но выдаёт минимальный, а не максимальный элемент. Что делать?
Ответить

Серж 13 апреля 2024 в 18:53

задание про марафон: почему в ( int min_time = Integer.parseInt(names[0][1]); ) name[0][1] , а не [0][0] ?
и почему в" if (Integer.parseInt(names[i][1]) < min_time) " names[i][1]) , а не names[i][i])?
это задание явно не для новичка, без просмотра решения с теми знаниями, что получил за 7 уроков не решил бы ее сам (
Ответить

Андрей 09 апреля 2024 в 19:09

Если честно, я обескуражен ответом на задание по трехмерным массивам. Я так понял вопрос, что нужно создать массив, прописать данные в нем, и заставить программу САМУ найти этот элемент и вывести его номер. И вот, я написал эту программу, стер пот с лица, проверяю на работоспособность, и довольный, иду смотреть ответ...
Ребят, это мощнейший подкол за всю мою жизнь, мое уважение
Ответить

sponge 19 декабря 2022 в 18:51

а как вывести массив который вводит пользователь на экран?
Ответить

AndresCodeBreaker 24 августа 2022 в 16:31

int[] a = new int[] {-14, 23, 9, -4, 12, -1};
int max = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] > max)
max = a[i];
}
System.out.println("Максимальный элемент: " + max);

Ваш код в домашнем задании не будет работать с массивами, все элементы которого отрицательны. Для верного нахождения максимума следует строчку

int max = 0;

заменить на:

int max = a[0];

и начинать проверять со второго элемента, либо же, чтобы не путаться лишний раз оставить все как есть :-)
Ответить