Рассматривать:
int[][] multD = new int[5][];
multD[0] = new int[10];
Это как вы создаете двумерный массив с 5 строками и 10 столбцами?
Я видел этот код онлайн, но синтаксис не имел смысла.
java
multidimensional-array
AppSensei
источник
источник
Ответы:
Попробуйте следующее:
... это короткая рука для чего-то вроде этого:
Обратите внимание , что каждый элемент будет инициализирован значением по умолчанию для
int
,0
, поэтому приведенные выше, также эквивалентны:источник
new int[][]
в=new int[][]{...}
варианте? Мы можем просто написать={...}
?new
ключевого слова.int array[][] = new int[3][];
VSint array[][] = new int[][3];
?? который является законным, поскольку я прочитал обе версии где-нибудь.Мы можем объявить двумерный массив и напрямую сохранить элементы во время его объявления как:
Здесь int представляет элементы целочисленного типа, хранящиеся в массиве, а имя массива - «mark». int - это тип данных для всех элементов, представленных в фигурных скобках "{" и "}", поскольку массив представляет собой набор элементов, имеющих одинаковый тип данных.
Возвращаясь к нашему утверждению, написанному выше: каждый ряд элементов должен быть написан внутри фигурных скобок. Строки и элементы в каждой строке должны быть разделены запятыми.
Теперь соблюдайте утверждение: вы можете получить 3 строки и 5 столбцов, поэтому JVM создает 3 * 5 = 15 блоков памяти. Эти блоки могут быть индивидуально обозначены как:
ПРИМЕЧАНИЕ.
Если вы хотите сохранить n элементов, индекс массива начинается с нуля и заканчивается n-1 . Другой способ создания двумерного массива - сначала объявить массив, а затем выделить для него память с помощью оператора new.
Комбинируя вышеперечисленные два, мы можем написать:
источник
Вы можете создать их так, как упоминали другие. Еще один момент, который нужно добавить: вы можете даже создать перекошенный двумерный массив с каждой строкой, необязательно имеющей одинаковое количество столбцов, например:
источник
int array[][] = new int[3][];
VSint array[][] = new int[][3];
?? который является законным, поскольку я прочитал обе версии где-нибудь.Наиболее распространенная идиома для создания двумерного массива с 5 строками и 10 столбцами:
В качестве альтернативы, вы можете использовать следующее, что больше похоже на то, что у вас есть, хотя вам нужно явно инициализировать каждую строку:
источник
Object[][] ary2d = new Object[5][10];
то вы все равно должны инициализировать каждый элемент 2D-массива.null
дело безопасно для любых не примитивов. Нужно ли вам инициализировать каждый элемент, полностью зависит от вашего дизайна. Кроме того, просто для пояснения - примитивы не могут иметь значение null и могут быть созданы для определенного значения по умолчанию, если оно не назначено вами. Например, anint
не может быть нулевым, и когда вы говоритеint i;
без присвоения значения, используется значение по умолчанию0
. Читайте об этом здесьТакже можно заявить об этом следующим образом. Это не хороший дизайн, но он работает.
источник
Пытаться:
Обратите внимание, что в вашем коде только первая строка 2D-массива инициализируется в 0. Строки со 2 по 5 даже не существуют. Если вы попытаетесь распечатать их, вы получите
null
для каждого из них.источник
источник
В Java двумерный массив может быть объявлен так же, как и одномерный массив. В одномерном массиве вы можете написать как
где int - это тип данных, array [] - это объявление массива и
new array
массив с его объектами с пятью индексами.Таким образом, вы можете написать двумерный массив следующим образом.
Вот
array
тип данных int. Сначала я объявил об одномерном массиве этих типов, затем создается массив из 3 строк и 4 столбцов.В вашем коде
означает, что вы создали двумерный массив с пятью строками. В первом ряду 10 столбцов. В Java вы можете выбрать размер столбца для каждой строки по своему желанию.
источник
Наслаждайтесь!
источник
Попробуйте так:
источник
Эти типы массивов известны как зубчатые массивы в Java:
В этом сценарии каждая строка массива содержит различное количество столбцов. В приведенном выше примере первая строка будет содержать три столбца, вторая строка будет содержать два столбца, а третий ряд содержит пять столбцов. Вы можете инициализировать этот массив во время компиляции, как показано ниже:
Вы можете легко перебрать все элементы в вашем массиве:
источник
На самом деле Java не имеет многомерного массива в математическом смысле. В Java есть просто массив массивов, массив, где каждый элемент также является массивом. Вот почему абсолютным требованием для его инициализации является размер первого измерения. Если остальные указаны, то он создаст массив, заполненный значением по умолчанию.
Это также дает нам причуду. Размер подмассива нельзя изменить, добавив больше элементов, но мы можем сделать это, назначив новый массив произвольного размера.
источник