この2つの違いはなんだろうと思った
String values[] = new String[10]
String[] values = new String[10]
これらはどちらも同じように使用されます。それらのデータを同じ方法で操作できるので、違いは何ですか。
Java チュートリアルでは、後者を使用して配列を宣言しています。どちらを使用する必要がありますか?
この2つの違いはなんだろうと思った
String values[] = new String[10]
String[] values = new String[10]
これらはどちらも同じように使用されます。それらのデータを同じ方法で操作できるので、違いは何ですか。
Java チュートリアルでは、後者を使用して配列を宣言しています。どちらを使用する必要がありますか?
言語仕様によると:
[] は、宣言の先頭の型の一部として、または特定の変数の宣言子の一部として、またはその両方として表示される場合があります。
そうです、それらは同じです。例えば:
byte[] rowvector, colvector, matrix[];
この宣言は次と同等です。
byte rowvector[], colvector[], matrix[][];
両方とも同じです。これらは配列宣言の異なる形式です。以下は、配列宣言のさまざまな方法です。
String[] x = new String[3];
String[] x = {"a","b","c"};
String[] x = new String[]{"a","b","c"};
String x[] = new String[3];
String x[] = {"a","b","c"};
String x[] = new String[]{"a","b","c"};
すべてのケースでx.length
3 が出力されます
JLS on Arraysによると
[] は、宣言の先頭の型の一部として、または特定の変数の宣言子の一部として、またはその両方として表示される場合があります。
本当に個人的な好みの問題です。String[]
[] が変数の型に属していることが明確になるため、I Prefer を使用します。しかし、古い構文を使用する理由も見つかると思います。
それらは同等です。
最初のものはよりCスタイルの構文であるため、Javaに保持されています。
どちらも有効な構文であり、まったく同じバイトコードになります。Oracle (および正式には Sun) の規則では、後者の形式 ( String[] values = new String[10]
) を使用します。これは、遭遇するほとんどすべてのオープン ソース プロジェクトと同様です。つまり、これを使用する必要があります。