2012-02-16 5 views
11

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

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} 

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

+0

Почему вы не делаете итерацию по массиву и не назначаете вызов метода? для (...) содержимого [i] [j] = {xMethod(), yMethod()}; – Juvanis

ответ

26

Лучший способ - это просто объявить и присвоить все значения сразу. Как показано here. 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.

Надежда, что помогает.

+0

голосует за самый полный ответ. –

0

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

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))

+0

Я сожалею, что это был только опечатка в моем примере. –

4

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

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

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

1

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

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

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

Смежные вопросы