2次元配列とは何か
2次元配列とは?
配列は一行の横に長い箱を用意だが、二次元配列だと横に長い箱を縦にも積み上げていき、1つのデータとして扱うイメージ
例えば、クラス全員の国語と算数の成績(2つのデータ)を1セットのデータとして扱いたい時などに便利
〈宣言〉
要素(配列に入れたいデータ)の型[ ] [ ] 配列変数名=new 要素の型[行数][列数]
ex. int[ ][ ] scores=new int[2][3];←2×3行の箱を用意
〈要素を利用したい時・・すなわち配列に入れたデータを利用したい時〉
配列変数名[行の添え字][列の添え字]
ex.//2×3の箱に入れたデータを全て取り出す
score[0][0]=40;
score[0][1]=50;
score[0][2]=50;
score[1][0]=80;
score[1][1]=60;
score[1][2]=70;
この場合データは全て参照型
参照型とは何か?(復習もかねて)
int[2][3](二次元配列)はint[2]とint[3](一次元配列)の番地情報を指していて、
int[2]はint型データ[0][1][2]の先頭の箱の番地情報を指している(int[3]も同様)
※ int[ ][ ]配列を親配列、その親配列が指しているint[ ]配列を子配列と呼ぶ
ex. int [ ][ ] scores={{10,20,30},{30,40,50}};
イメージとしては、
int[ ][ ]配列はまず[0][1]という添え字のついた箱を2つ用意
その後、その中に入れるint配列の[0][1][2]という添え字のついた箱を3つ用意し、
その箱の中にint型データの10,20,30を入れる
//親配列の長さを取得
System.out.println(scores.length);
→出力 2(最初に用意した箱の数)
//子配列の長さを取得
System.out.println(scores[0].length);
→出力 3(最初に用意した箱の中に入れた0番目の箱の中に入っているデータの数)