皆さん配列はご存じでしょうか?
Javaを使用していくうえで、絶対に避けては通れないのが配列です。
配列を勉強する前と勉強した後とでは同じ機能のプログラムを書くとなっても、記載スピード・美しさ・見やすさ等のどれもが雲泥の差となります。
今回はそんな配列の使用方法や機能について解説していきます。
そもそも配列とは何なのか?
まず配列とは何なのかについて解説していきます。
配列は簡単に言うと箱を数珠つなぎにしたものです。
上記のような箱がたくさんある状態を思い浮かべていただければ大丈夫です。
これらの箱すべてをひとまとまりにしたものが配列型の変数となります。
この箱一つ一つに同じ型の値を入れることができるのです。
イメージとしてはこんな感じで、プログラム上でこの配列に変数を代入したり、代入されている値を取得したりすることが可能となっています。
プログラム上での配列の宣言方法などについては下記記事で簡単に解説していますので、そちらを参照してください。
Javaの参照型(データ型)解説【初学者・初心者用】 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)
配列の要素について
配列はいくつもの箱を数珠繋ぎにしていると先ほど話しましたが、この箱一つ一つを要素といい番号が割り振られています。
この割り振られた番号が添え字といい下記のようにそれぞれの要素に割り振られています。
添え字は0から始まり、作成した配列の個数-1までの添え字を使用することができます。
使用例と実行結果として下記のようになります。
【使用方法】
public class ex {
public static void main(String[] args) {
int a[]={75,39,92,65,71};
System.out.println("国語:"+a[0]+"点、数学:"+a[1]+"点、英語:"+a[2]+"点、社会:"+a[3]+"点、理科:"+a[4]+"点");
}
}
【実行結果】
国語:75点、数学:39点、英語:92点、社会:65点、理科:71点
上記は5つの要素の配列を作成していて、それぞれの要素に値を代入しています。
イメージとしては下記のようになります。
因みにここでa[5]の要素にアクセスしようとするとエラーとなります。
作成されている要素は5つで添え字は0から始まるため、一番最後の添え字は4となるためです。
配列の要素数の数え方
配列の要素については分かったと思いますが、要素が100や1000あった場合いくつの要素があるのかを数えるなどは現実的ではありません。
そのような時に役立つのが要素数を数えてくれるlengthというフィールドです。
下記のように使用することで配列の要素数を数えてくれます。
変数.lenth
実際の使用例と実行結果は下記のようになります。
【使用方法】
public class ex2 {
public static void main(String[] args) {
int a[]=new int[45684];
String b[]=new String[651214];
System.out.println("a配列の要素数は"+a.length+"個です");
System.out.println("b配列の要素数は"+b.length+"個です");
}
}
【実行結果】
a配列の要素数は45684個です
b配列の要素数は651214個です
正しい要素数が出力されていることが分かると思います。
配列はループで使用することで真価を発揮
ここまで配列について基礎的な説明をしてきましたが、「どういった時に配列を使用するのか?」という疑問が出てくる方もいると思います。
十分に配列の機能を使用したいとなった場合、私はループこそが配列の機能を余すことなく使用できると考えています。
では実際の使用例と実行結果を基に解説していきます。
【使用方法】
public class ex3 {
public static void main(String[] args) {
int a[]=new int[10];
int count=a.length;
int i=0;
while(i<count) {
a[i]=i*10;
System.out.println(a[i]);
i++;
}
}
}
【実行結果】
0
10
20
30
40
50
60
70
80
90
初めに10個の要素を作成して、各要素に「現在の要素×10」という値を代入しています。
そして先ほど解説したlengthを使用して配列の要素数を取得し、その要素数を現在の要素数が超えるまでループを繰り返すという処理となっています。
配列を使用することで上記のようなコードを作成することができますが、これを配列なしで使用するとなると下記のようになります。
public class ex4 {
public static void main(String[] args) {
int a=0;
int i=0;
while(i<10) {
a=i*10;
System.out.println(a);
i++;
}
}
}
一見配列を使用する前よりも簡単になっていますが、このコードでは実現できない機能が配列にはあります。
上記コードは値をaという変数に上書きしていってます。
そのため途中の値を後から出力したいとなっても出力することができません。
その点配列ですと4つ目の値を出力したいとなったとしてもa[3]と記載すればいいだけです。
もしこの機能を配列なしで実現しようとすると大量の変数を用意する必要があり、とても大変です。
せっかくループで楽を使用としているのに、これでは労力もかかりますし、何よりも見にくいという欠点が生じます。
これらの事からループで配列を使用することの利点を理解していただけたかと思います。
2次元配列とは?
最後に解説するのは2次元配列についてです。
2次元配列とは読んで字のごとく配列の中に配列を作成したモノとなります。
イメージは上記のようになります。
マンションをイメージしていただいたら分かりやすいかもしれませんが、マンションという建物の中にいくつもの部屋がある感じです。
〇〇マンションの1号室、△△マンションの7号室などと考えてもらえれば大丈夫です。
一つの大きなくくりの中に小さな集団を作成したいとなった場合に2次元配列を使用します。
宣言の方法もほぼ通常の配列と変わりません。
データ型 変数名[][]=new データ型[インデックス1][インデックス2];
インデックス1が大きなくくりの配列で、インデックス2がインデックス1の中にある配列となります。
使用例は以前下記記事で使用していますので、そちらを見ていただければわかると思います。
【Java】while文を使用したループ方法について解説 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)
まとめ
この記事では配列の使用方法などを下記項目順に解説してきました。
- そもそも配列とは何なのか?
- 配列の要素について
- 配列の要素数の数え方
- 配列はループで使用することで真価を発揮
- 2次元配列とは?
配列をしていると簡単で分かりやすいコードを書けるようになります。
始めは使いにくいと感じる方もいるかもしれませんが、慣れてくるととても便利なものですのでぜひ使えるようになってみてください。
以上で今回の解説は終了となります。
コメント