Рваные массивы
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 6 из 59.
Ступенчатый массив — это специальный тип двумерного массива, в котором каждая строка может иметь разное количество столбцов. Другими словами, это массив массивов, и каждый «inner» массив может иметь разную длину. Это отличается от обычного двумерного массива, где все строки имеют одинаковое количество столбцов, образуя прямоугольную форму.
Зубчатые массивы полезны, когда нужно хранить данные, которые не укладываются аккуратно в прямоугольную сетку. Например, зубчатый массив можно использовать для хранения слов в каждом предложении абзаца, где каждое предложение имеет разное количество слов.
Вот как объявить и инициализировать зубчатый массив в Java:
data_type[][] array_name = new data_type[number_of_rows][];
// Initialize each row with a different number of columns
array_name[0] = new data_type[number_of_columns_in_row_0];
array_name[1] = new data_type[number_of_columns_in_row_1];
// ... and so onОбратите внимание, что когда вы впервые объявляете массив, вы указываете только количество строк. Затем вы инициализируете каждую строку отдельно, указывая количество столбцов для этой строки.
Задание
ЛегкоСоздайте метод с именем createJaggedArray, который принимает целое число n в качестве входного параметра и возвращает рваный массив целых чисел. Рваный массив должен иметь следующую структуру:
- Первая строка должна содержать 1 элемент.
- Вторая строка должна содержать 2 элемента.
- Третья строка должна содержать 3 элемента.
- И так далее, до строки
n, которая должна содержатьnэлементов.
Инициализируйте каждый элемент массива произведением индексов его строки и столбца (начиная с 1). Например, элемент во второй строке и первом столбце должен иметь значение 2 * 1 = 2.
Шпаргалка
Рваный массив — это двумерный массив, в котором каждая строка может иметь разное количество столбцов, в отличие от обычных двумерных массивов, где все строки имеют одинаковую длину.
Чтобы объявить и инициализировать рваный массив:
data_type[][] array_name = new data_type[number_of_rows][];
// Initialize each row with a different number of columns
array_name[0] = new data_type[number_of_columns_in_row_0];
array_name[1] = new data_type[number_of_columns_in_row_1];
// ... and so onПри объявлении рваного массива вы указываете только количество строк изначально, затем инициализируете каждую строку отдельно с её конкретным количеством столбцов.
Попробуйте сами
// Пишите свой код только внутри класса. Не пишите main() или любой код вне этого класса.
class CreateJaggedArray {
public static int[][] createJaggedArray(int n) {
// Напишите свой код здесь
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов