多次元配列の.length

先日、Javaで多次元配列がいくつまでつくれるか?なんていう話を書いたが、
今日はトレーニングの受講者の方から、「多次元配列の.lengthは何を返すのか?」
という質問を受けた。

正直、考えたことがなかったので、実際にコードを書いて試してみる。

int[] a = {{1,2,3},{4,5,6}};
System.out.println(a.length);

a は 2 x 3 の多次元配列である。この場合、コンソールにどんな数値が表示
されるか、ご存知の方はいるだろうか?

答えは、「2」である。つまり、a.lengthは、2次元配列aの1次元方向の要素数を
返すのだ。2次元方向の要素数はどうやったら得られるかというと、

System.out.println(a[0].length);

のように書くと「3」が表示される。
なんとなく、Javaが多次元配列をどのように実現しているかが想像できる結果となった。

実際は、aの要素数は、「6」が帰ってきたほうが場合によっては便利なような気も
するが、2次元配列でループを絡ませる場合は、次元ごとに要素数をカウントして
くれたほうが便利かもしれない。

なかなか配列も奥が深いものだ。

「多次元配列の.length」への2件のフィードバック

  1. むむっ、こんな昔のエントリまで見ていただいているとは、ありがとうございます。

    ちなみに、私があらゆる情報処理技術者系の資格を何一つ有していないっていうのは、みなさんご存じなのでしょうか(ついでに言うと運転免許もないのですが)。

    教育・コンサルティング業が免許制じゃなくて良かったと思う今日この頃です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です