Явное назначение значений в 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.