2011-06-25 2 views
1

Javaでは、ループを書く方法がありません。そのため、配列の配列をjavaで素早く名前x{a_1[], a_2[], a_3[], ... , a_n[]}で初期化することができます。あるいは、それを入力するだけで済むでしょうか?Javaで配列名を初期化する

私は習得しようとしていることを明確にする新しい質問を書いています。 Java Poset simulation

+0

変数の名前は、時には操作や心配するものではありません。内部配列変数名を気にするのではなく、2D配列(単に配列の配列)を使うほうがよいでしょう。それ以外の場合は、Stringの情報の集合を絶対に参照する必要がある場合は、Mapの使用を検討してください。 –

答えて

1

aioobeが正しいこと、そしてあなたがとしても、それを初期化することができます:あなたの質問は全く明らかではないAlthouh

int[][] matrix = { 
     { 1, 2, 3 }, 
     { 4, 5, 6 }, 
     { 7, 8, 9 } 
    }; 
+0

これらの 'new int []'は必要ありません。 – aioobe

+0

@aioobeありがとう、ありがとう。 – Marcelo

1

すでに「行」-arrays、a_1を持っている場合は... a_n、それを行うための最もコンパクトな方法は

int[] a_1 = { 1, 2, 3 }; 
int[] a_2 = { 4, 5, 6 }; 
int[] a_3 = { 7, 8, 9 }; 

int[][] matrix = { a_1, a_2, a_3 }; 

であるあなたは、ループを使用する場合でも、あなたはまだ指定する必要があります配列a_1a_2などのように、 を繰り返し処理したいので、それらのすべてについて言及することはできません。

あなたは明らかに、このような、そうで{ 1, 2, 3 }ためa_1を代入し、可能性:

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

二次元アレイは、アレイのアレイです。

// declare & allocate 
int[][] x = new int[5][4]; 

// assign value in 3rd position of the 2nd array 
x[1][2] = 5; 

// create array containing 1 & 2 in the first "row" (or array) 
// and 3 & 4 in the second one. 
int[][] x = new int {{1,2}, {3,4}}; 

// create an array of 2 arrays of different size: 
int[][] x = new int[2][]; 
x[0] = new int[4]; 
x[1] = new int[2]; 
1

、私はそれに答えを与えてみます。

Javaでは、2D配列は配列の配列として扱われます。配列の配列に対して参照を取得する場合は、2D配列の変数を使用して、その要素のそれぞれを配列として使用できます。たとえば、あなたはすべてのアレイをループするforeachループを使用することができます。

int[][] foo = new int[ 10 ][ 20 ]; 
for(int[] arrayInFoo : foo) 
{ 
    arrayInFoo[ 0 ] = ...; 
    arrayInFoo[ 1 ] = ...; 
    ... 
    arrayInFoo[ 9 ] = ...; 
}//for 

よろしく、 ステファン

0

あなたはという名前の配列で何を意味するのですか?

あなたの場合のa_1はx [0]になります。あなたが得ることができる休館

はこれです:

int a1[], a2[]; 
    int aa[][] = { (a1 = new int[] { 1 }), a2 = new int[] { 2, 3 } }; 

しかし、配列の配列はほとんどここに値を追加しません。 あなただけの、多次元配列を初期化したい、このようにそれを行う場合:

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

あなたはまた悲しげに、それは最初のレベルのみをサポートし、Arraysを使用して同じ値でそれを埋めることができます。

int c1[] = new int[5]; 
    Arrays.fill(c1, 5); 
    int ca[][] = { Arrays.copyOf(c1, 5), 
        Arrays.copyOf(c1, 5), 
        Arrays.copyOf(c1, 5) }; 

または:

int da[][] = new int[5][5]; 
    for (int i = 0; i < da.length; i++) { 
     Arrays.fill(da[i], 5); 
    } 

または可能性:foreachので

int ea[][] = new int[5][5]; 
    for (int i = 0; i < ea.length; i++) { 
     for (int j = 0; j < ea[i].length; j++) { 
      ea[i][j] = 5; 
     } 
    } 

int fa[][] = new int[5][5]; 
    for (int[] is : fa) { 
     Arrays.fill(is, 5); 
    } 

と:

int ga[][] = new int[5][5]; 
    for (int[] is : ga) { 
     for (int i : is) { 
      i = 5; 
     } 
    }