23

何かをテストするというアイデアがありましたが、うまくいきました:

    String[][] arr = new String[4][4];

    arr[2] = new String[5];

    for(int i = 0; i < arr.length; i++)
    {
        System.out.println(arr[i].length);
    }

出力は明らかに次のとおりです。

4
4
5
4

だから私の質問は:

  • このコーディングスタイルは良いですか、それとも悪いですか?
  • これは何の役に立つでしょうか?
  • そして何よりも、宣言自体でそのような構造を作成する方法はありますか?
  • また...なぜそれができるのですか?
4

3 に答える 3

26
  • このコーディングスタイルは良いですか、それとも悪いですか?

何でもそうですが、状況次第です。ジャグ配列(と呼ばれる) が実際に適切な状況があります。

  • これは何の役に立つでしょうか?

そうですね、長さが異なるデータセットを 1 つの配列に格納するためです。たとえば、文字列"hello"とがある場合"goodbye"、それらの文字配列を 1 つの構造体に格納したい場合があります。これらの char 配列は長さが異なるため、ジャグ配列を使用します。

  • そして何よりも、宣言自体でそのような構造を作成する方法はありますか?

はい:

char[][] x = {{'h','e','l','l','o'},
              {'g','o','o','d','b','y','e'}};
  • また...なぜそれができるのですか?

Java 言語仕様§10.6で許可されているためです。

于 2013-08-01T15:06:13.887 に答える