Доступ к элементам 2D-массива
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 2 из 59.
Доступ к элементам в двумерном массиве похож на доступ к элементам в одномерном массиве, но вместо одного индекса используются два индекса: один для строки и один для столбца. Помните, что индексы в Java начинаются с 0, поэтому первая строка имеет индекс 0, вторая строка — индекс 1 и так далее. Аналогично, первый столбец имеет индекс 0, второй столбец — индекс 1 и так далее.
Чтобы получить доступ к элементу, сначала укажите индекс строки, а затем индекс столбца, используя следующий синтаксис:
arrayName[rowIndex][columnIndex]Например, чтобы получить доступ к элементу во второй строке (индекс 1) и третьем столбце (индекс 2) двумерного массива с именем matrix, вы напишете:
int element = matrix[1][2];Это присвоит значение элемента в строке 1, столбце 2 переменной element.
Получение размеров двумерного массива:
Как и для одномерных массивов, вы можете использовать .length для получения размеров двумерного массива:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
int numRows = matrix.length; // Gets number of rows: 2
int numCols = matrix[0].length; // Gets number of columns: 3matrix.lengthвозвращает количество строкmatrix[0].lengthвозвращает количество столбцов в первой строке
Проверка границ:
Перед доступом к элементу хорошей практикой является проверка валидности индексов:
if (rowIndex >= 0 && rowIndex < matrix.length &&
colIndex >= 0 && colIndex < matrix[0].length) {
// Safe to access matrix[rowIndex][colIndex]
}Задание
ЛегкоСоздайте метод с именем getElement, который принимает три аргумента:
- Двумерный массив целых чисел с именем
matrix. - Целое число
rowIndex, представляющее индекс строки. - Целое число
colIndex, представляющее индекс столбца.
Метод должен возвращать элемент в указанной строке и столбце в matrix. Если rowIndex или colIndex выходит за границы (т. е. меньше 0 или больше или равно количеству строк или столбцов), метод должен возвращать -1.
Шпаргалка
Чтобы получить доступ к элементам в двумерном массиве, используйте два индекса: один для строки и один для столбца. Индексы начинаются с 0.
Синтаксис:
arrayName[rowIndex][columnIndex]Пример:
int element = matrix[1][2]; // Получает элемент в строке 1, столбце 2вы можете использовать .length для получения размеров двумерного массива:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
int numRows = matrix.length; // Получает количество строк: 2
int numCols = matrix[0].length; // Получает количество столбцов: 3Попробуйте сами
// Пишите свой код только внутри класса. Не пишите main() или любой код вне этого класса.
class GetElement {
public static int getElement(int[][] matrix, int rowIndex, int colIndex) {
// Напишите свой код здесь
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов