1. ホーム
  2. java

[解決済み] Javaで2次元配列の配列長を取得する

2022-04-25 02:17:54

質問

2次元配列の行と列の長さを取得したいのですが、どうすればよいですか? 次のコードを使って、うまくできました。

public class MyClass {

 public static void main(String args[])
    {
  int[][] test; 
  test = new int[5][10];

  int row = test.length;
  int col = test[0].length;

  System.out.println(row);
  System.out.println(col);
    }
}

これは予想通り5, 10をプリントアウトしています。

では、この行を見てください。

  int col = test[0].length;

列の長さを取得するために、実際に特定の行を参照する必要があることに注意してください。 私には、これは非常に不格好に思えます。 さらに、もし配列が次のように定義されていたら

test = new int[0][10];

そうすると、長さを取得しようとしたときに、コードが失敗してしまいます。 何か別の(もっと賢い)方法があるのでしょうか?

どのように解決するのですか?

検討する

public static void main(String[] args) {

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

    System.out.println(foo.length); //2
    System.out.println(foo[0].length); //3
    System.out.println(foo[1].length); //4
}

列の長さは行ごとに異なる。 もし、あるデータを固定サイズの2次元配列でバックアップするのであれば、 ラッパークラスで固定値へのゲッターを提供します。