8

本でこのコード行に出くわしましたが、これは合法であると書かれていましたが、グーグルで調べてもよくわかりません。コードは次のとおりです。

Boolean [] ba [];

配列を作成するには、次のようにする必要があることを知っています。

int [] numberArray;

int numberArray [];

int [] [] num2DArray;

ありがとう!

4

4 に答える 4

13

これら 3 つの宣言はすべて、 java で同じ意味を持ちます。

Boolean  [][] ba ;
Boolean  [] ba [];
Boolean  ba [][] ;

私はそれがあまり好きではありませんが、混乱が生じる可能性がないため、それらを同等にすることに大きな害はありません。理論的根拠は、C および C++ のコーダーが特定の表記法に慣れていたためです。

 int a[];

Java での推奨事項は、前に型を一貫して宣言することです。

 int[] a;

参照は次のとおりです: http://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html#jls-10.2

そして2つの抜粋:

C および C++ の伝統への同意として、宣言子でブラケットを使用できます。ただし、変数宣言の一般規則では、型と宣言子の両方に括弧を使用することが許可されているため、ローカル変数宣言は

[...]

配列変数の宣言では、型と宣言子の両方に括弧が表示される「混合表記」はお勧めしません。

Javaで読みやすくするために、通常の方法に固執することをお勧めします

 Boolean[][] ba ;

メソッド宣言についても同様の動作があることに注意してください。ByteArrayOutputStream以下は、クラスのソース コードからの抜粋です。

public synchronized byte toByteArray()[] {
    return Arrays.copyOf(buf, count);
}

これは互換性のために許可されていますが、使用しないでください。ほとんどのコーダーは一見しただけでは に気付かない[]ため、このメソッドが配列を返すことをすぐに理解することはありません。

于 2012-08-26T07:48:47.000 に答える
4
Boolean [] ba [];

二次元配列です。

配列宣言では、変数名の前後に括弧を付けることができます。

int ba[]; or int ba []; 

そしてどちらも同じです。2 次元または 2 次元配列の場合

int [] [] num2DArray;
int [] num2DArray []; 
int num2DArray[] [];

これはすべて同じです。しかし、

String[] は、args の型 (文字列の配列) をまとめて保持するため、優先されます。より複雑でフォーマットが不十分なメソッド シグネチャでは、パラメーター名の後の [] を簡単に見逃す可能性があります。

于 2012-08-26T08:24:32.483 に答える
3

1 次元配列と 2 次元配列は、さまざまな方法で宣言できます。

int arr [];
int [] arr;

二次元配列:

String [][] myStringArray = new String [x][y];
Boolean  [][] booeanArr ;
Boolean  [] booeanArr [] ;
Boolean  booeanArr [][] ;

Javaでより読みやすい配列を宣言するには、次の規則を使用します

文字列 [][] myStringArray;

于 2012-08-26T08:01:43.580 に答える
2

[]これは、位置によって違いが生じる場合を示す例です。

Boolean[] arr, arr2[];

はのarr配列ですBooleanが、arr2は の配列の配列ですBoolean

于 2012-08-26T09:10:10.973 に答える