4

この2つの違いはなんだろうと思った

String values[] = new String[10]

String[] values = new String[10]

これらはどちらも同じように使用されます。それらのデータを同じ方法で操作できるので、違いは何ですか。

Java チュートリアルでは、後者を使用して配列を宣言しています。どちらを使用する必要がありますか?

4

6 に答える 6

1

言語仕様によると:

[] は、宣言の先頭の型の一部として、または特定の変数の宣言子の一部として、またはその両方として表示される場合があります。

そうです、それらは同じです。例えば:

byte[] rowvector, colvector, matrix[];

この宣言は次と同等です。

byte rowvector[], colvector[], matrix[][];
于 2013-11-06T05:44:50.080 に答える
1

両方とも同じです。これらは配列宣言の異なる形式です。以下は、配列宣言のさまざまな方法です。

    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.length3 が出力されます

于 2013-11-06T05:39:18.893 に答える
0

JLS on Arraysによると

[] は、宣言の先頭の型の一部として、または特定の変数の宣言子の一部として、またはその両方として表示される場合があります。

于 2013-11-06T05:42:39.520 に答える
0

本当に個人的な好みの問題です。String[][] が変数の型に属していることが明確になるため、I Prefer を使用します。しかし、古い構文を使用する理由も見つかると思います。

于 2013-11-06T05:39:47.710 に答える
0

それらは同等です。

最初のものはよりCスタイルの構文であるため、Javaに保持されています。

于 2013-11-06T05:40:08.977 に答える
0

どちらも有効な構文であり、まったく同じバイトコードになります。Oracle (および正式には Sun) の規則では、後者の形式 ( String[] values = new String[10]) を使用します。これは、遭遇するほとんどすべてのオープン ソース プロジェクトと同様です。つまり、これを使用する必要があります。

于 2013-11-06T05:40:15.667 に答える