プログラマー初心者blog

当ブログにようこそ!!!

【JavaSilver】難題(多次元配列)

皆さんこんばんは!

連休の始まりだー!!!

最近業務にもなれてきたのですが、座りっぱなしということもあり

足がだるくなってしまいます。

何かいい方法があれば教えていただきたいです🙇‍♂

多次元配列

JavaSilverの問題を解いている中でイメージができなく、

解答ミスばかりしてしまった多次元配列について話していければと思います。

多次元配列とは

配列の要素に別の配列の要素を格納しているものを多次元配列と呼びます。

2層の配列で成り立っているものを「二次元配列」といいます。

また、2層目の配列の中に別の配列の要素を格納しているものを「3次元配列」といいます。

二次元配列のインスタンス生成

これから紹介する方法はどちらも順序は違いますが同じインスタンスを生成します。

① int[ ][ ] array = new int[3][3];

このように記述すると1次元目と2次元目の配列インスタンスが同時に生成されます。

このコードは次の順序で動作します。

  1. 3つの要素を持った1次元目の配列インスタンスが作られる。
  2. 3つの要素を持った2次元目の配列インスタンスが3つ作られる。
  3. 1次元目の要素として、3つの2次元目の配列インスタンスへの参照が代入される。

1次元目と2次元目の配列インスタンスを同時に生成せず、

1次元目の配列インスタンスを生成し、あとから2次元インスタンスを生成する場合

②int [ ][ ] array = new int [3][ ];

 array[0] = new int[3];

 array[1] = new int[3];

 array[2] = new int[3];

このように1次元目と2次元目を別々のタイミングで生成することができます。

このとき、1次元目の要素を指定せずに2次元目の要素数を指定することはできません。

1次元目の要素数を省略するとコンパイルエラーが発生します。

また、今回の例では2次元配列の要素をすべて3に合わせていますが

それぞれ異なる要素数を持つ配列への参照を持つことも可能である。

多次元配列の初期化

多次元配列に値を直接代入する方法です。

int[ ][ ] array = { {2,3}, {4,5} } ;

これで直接値を入れることができます!!

 

なかなかイメージがしにくい多次元配列ですが、三次元配列であっても

一つ一つ切り分けて考えるとわかりやすいと気づきました。

JavaSilverの問題でも出てくるので抑えておきましょう。

それでは(つ∀-)オヤスミー