Явное назначение значений в 2D-массив?

Я никогда не делал этого раньше и не могу найти ответ. Это может быть не правильный тип данных для использования для этого, но я просто хочу назначить int, а затем еще один int без цикла for в 2D-массив, значения будут действительными для возврата из другой функции, но для простоты я просто использовал int я и k, так я думал, что вы это сделаете, но его не:

int contents[][] = new int[2][2];
            contents[0][0] = {int i, int k}
            contents[1][1] = {int i, int k}
            contents[2][2] = {int i, int k}

TIA - не стесняйтесь указывать меня в направлении лучшей структуры данных, чтобы сделать это, если я лаю неправильное дерево.

Ответ 1

Лучший способ - это просто объявить и сразу назначить все значения. Как показано здесь. Java автоматически определит размер массива и присвоит значения таким образом.

int contents[][] = { {1, 2} , { 4, 5} };

Альтернативно, если вам нужно сначала объявить массив, помните, что каждый contents[0][0] указывает на одно целое значение, а не на массив из двух. Итак, чтобы получить то же назначение, что и выше, вы должны написать:

contents[0][0] = 1;
contents[0][1] = 2;
contents[1][0] = 4;
contents[1][1] = 5;

Наконец, я должен отметить, что массив 2 на 2 - это индекс от 0 до 1, а не от 0 до 2.

Надеюсь, что это поможет.

Ответ 2

Вы хотите назначить все значения в 2D-массиве во время объявления? Если это так, он работает следующим образом:

int[][] contents = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

Помните, что 2D-массив в Java действительно представляет собой массив массивов, но Java дает вам специальный синтаксис, если вы это делаете во время объявления.

Ответ 3

Вы хотите:

int [][] t = {{1,2,3},{4,5,6}};

Ответ 4

contents [0] [0] указывает на один int, а не на массив int. Вы можете назначить только одно значение любому конкретному индексу в массив.

Ответ 5

int Array[][] = {{1, 2}, {3, 4}};

Этот массив составил таблицу 2 * 2 [Row * column] = 4 ящика. В 1 строке и в 1 столбце хранится 1. тогда как в 0 строке и во 2 столбце 0 хранится.

Ответ 6

Это то, что вы имеете в виду?

int contents[][] = new int[2][2];
contents[0][0] = 1;
contents[1][1] = 2;
...

Это позволит вам индивидуально присваивать значения элементам вашего 2D-массива по одному за раз.

Также обратите внимание, что вы не можете получить доступ к индексу 2 в массиве размером 2. Массив размера 2 имеет 2 действительных указателя (0 и 1). В общем случае массив размера N имеет N действительных знаков (0... (N-1))

Ответ 7

Похоже, вы хотите назначить строку в одном утверждении?

После объявления вроде:

int[][] matrix = new int[2][2] //A

или же

int[][] matrix = new int[2][] //B

Вы можете использовать два вида оператора присваивания:

matrix[0][0]=1; //can only used in A, or will throw the NullPointerException.
matrix[1]=new int[] {3,3,5};//This can be used both in A and B. In A, the second row will have 3 elements.