2012-02-16 9 views
11

私は以前これをやったことがなく、答えを見つけることができません。これは、これに使用する正しいデータ型ではないかもしれませんが、私はちょうどintを代入し、その後にforループを持たない別のintを2次元配列に入れたいのですが、値は実際に別の関数から返されますが、 - 私は「場合は、これを行うには良いデータ構造体の方向に私を指すこと自由に感じ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} 

TIA:ちょうど使用し、これは私はあなたがそれを行うだろうと思ったが、その方法ではありません、iとkの値int間違った木を吠える。

+0

なぜ、配列に対して繰り返し処理を行い、メソッド呼び出しで割り当てるのですか? for(...)contents [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; 

最後に、私は0から1まで2によって配列がインデックスである2ことに注意する必要がありません0 2に

お役に立てば幸いです。

+0

ほとんどの完全な答えを投票します。 –

0

この意味は?

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

これにより、2D配列の要素に一度に1つずつ値を割り当てることができます。

また、サイズ2の配列のインデックス2にアクセスすることはできません。サイズ2の配列には2つの有効なインデックス(0と1)があります。一般に、サイズNの配列にはN個の有効な記号(0〜(N-1))があります。

+0

申し訳ありませんが、これは私の例の誤植でした。 –

4

宣言時にすべての値を2次元配列に代入しますか?その場合は、次のように、それが動作します:

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

は、Javaでの2次元配列が実際に配列の配列ですが、宣言時にこれを行う場合、Javaはあなたにいくつかの特別な構文を与えることを忘れないでください。

2

あなたがこの希望:

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

内容[0] [0]単一のintではなく、intの配列を指します。 1つの値を配列内の特定のインデックスに割り当てることができます。

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

この配列は、2 * 2 [行*列] = 4個のボックスのテーブルを作成しました。 1行1列1が格納されます。 ここでは、1行2列2が格納される。

関連する問題