Подтвердить что ты не робот

Что входит в 2D-массив, строки или столбцы?

При создании 2D-массива, как помнить, указаны ли строки или столбцы в первую очередь?

4b9b3361

Ответ 1

Java считается "основной строкой", что означает, что он сначала выполняет строки. Это связано с тем, что 2D-массив представляет собой "массив массивов".

Например:

int[ ][ ] a = new int[2][4];  // Two rows and four columns.

a[0][0] a[0][1] a[0][2] a[0][3]

a[1][0] a[1][1] a[1][2] a[1][3]

Его также можно визуализировать следующим образом:

a[0] ->  [0] [1] [2] [3]
a[1] ->  [0] [1] [2] [3]

Вторая иллюстрация показывает аспект массива массивов. Первый массив содержит {a[0] and a[1]}, и каждый из них представляет собой массив, содержащий четыре элемента, {[0][1][2][3]}.

TL; Резюме DR:

Array[number of arrays][how many elements in each of those arrays]

Дополнительные пояснения см. также Массивы - 2-мерные.

Ответ 2

В то время как Matt B может быть истинным в некотором смысле, это может помочь думать о многомерном массиве Java, даже не думая о геометрических матрицах. Масштабируемые массивы Java - это просто массивы массивов, и каждый элемент первого "измерения" может иметь разный размер от других элементов или фактически может фактически хранить нулевой "sub" -array. См. Комментарии в разделе этот вопрос

Ответ 3

Инстинктивно геометрически мыслит: горизонтальная (X) ось, а затем вертикальная (Y) ось. Это, однако, не случай с 2D-массивом, сначала идут строки, а затем столбцы.

Рассмотрим следующую аналогию: в геометрии один идет к лестнице (ось X) и поднимается на нее (ось Y). Напротив, в Java спускается лестница (строки) и уходит (столбцы).

Ответ 4

В Java нет многомерных массивов. Существуют массивы массивов. Итак:

int[][] array = new int[2][3];

На самом деле он состоит из двух массивов, каждый из которых имеет три элемента.

Ответ 5

Все зависит от вашей визуализации массива. Строки и столбцы - это свойства визуализации (возможно, в вашем воображении) массива, а не самого массива.

Это точно так же, как запрос - это номер "5" красный или зеленый?

Я мог бы нарисовать его красным, я мог бы нарисовать его жадностью? Цвет не является неотъемлемым свойством числа. Точно так же представление 2D-массива как сетки строк и столбцов не обязательно для существования этого массива.

2D-массив имеет только первый размер и второй размер, все, что связано с визуализацией, - это просто ваш аромат.

Когда у меня есть char массив char[80][25], я могу напечатать его на консоли, повернутой так, чтобы у меня было 25 строк по 80 символов, которые соответствуют экрану без прокрутки.

Я попытаюсь представить жизнеспособный пример при представлении 2D-массива, поскольку строки и столбцы вообще не имеют смысла. Скажем, мне нужен массив из 1 000 000 000 целых чисел. У моей машины 8 ГБ оперативной памяти, поэтому у меня достаточно памяти для этого, но если вы попытаетесь выполнить var a = new int[1000000000], скорее всего, вы получите исключение OutOfMemory. Это из-за фрагментации памяти - нет последовательного блока памяти такого размера. Вместо этого вы можете создать 2D-массив размером 10 000 x 100 000 с вашими значениями. Логически это 1D-массив, поэтому вы хотите рисовать и представлять его как единую последовательность значений, но из-за технической реализации это 2D.

Ответ 6

В java строки выполняются первыми, потому что 2-мерный массив считается двумя отдельными массивами. Начинается с массива размера первой строки 1.