Javaで配列の使い方(定義、値の取得)と、
配列の種類「1次元配列、2次元配列、連想配列」がどのようなものかあるのかを解説します。
Javaに限らずですが「配列を制するものはプログラミングを制する」と言われているほど、配列は重要なプログラミングの要素ですので、
まずは「配列とは何者か?」という感覚をつかんでもらえればOKです。
※Javaには「基本型(String[]など)、ArrayList」の配列が2種類ありますが、「ArrayList」の方で説明します。
それでは行きましょう!
配列とは
配列は複数の値を1つの変数に入れて使用します。
変数について「変数の宣言と使い方」でString型、Integer型の説明しました。
String型、Integer型は1つの変数に1つの値を入れていましたが、配列は複数の値を入れることができます。
配列のイメージは次のようになります。

インデックス番号「0, 1, 2」が振られており、このなかにフルーツ名が入っていて、インデックス番号は 0 を指定したら「バナナ」が取り出せるキーとなっています。
次の「配列の使い方」で、このイメージの配列をソースコードで記述してみます。
配列の使い方
配列を定義してみる
Javaの配列をArrayListクラスを使って定義します。
package sample; // [1] ArrayListクラスをインポートする(ショートカットキー「shift + ctrl + o」) import java.util.ArrayList; public class Sample { public static void main(String[] args) { // [2] 配列を定義する ArrayList<String> list = new ArrayList<String>(); // [3] 配列に文字を追加する list.add("バナナ"); list.add("イチゴ"); list.add("すいか"); } }
[1]
ArrayListクラスを最初にimportします。
WindowのEclipse環境であれば、[2] を定義した後でショートカットキー「shift + ctrl + o」で自動的にimport定義することができます。
[2]
配列を定義します。
ArrayList配列に格納する型を<>の中に定義します。今回は文字列の配列なので<String>を定義しています。
[3]
addメソッドを使って文字列を配列に追加していきます。
配列の値を取得してみる
変数に定義した配列から値を取得してみましょう。
配列の取得方法はインデックス番号を指定して取得します。
「インデックスを指定して表示する方法」と「ループして表示する方法」の2つのソースコードを書いてみます。(mainメソッド内の部分だけ記載します)
ArrayList<String> list = new ArrayList<String>(); list.add("バナナ"); list.add("イチゴ"); list.add("すいか"); System.out.println("◆インデックスを指定して表示"); System.out.println(list.get(0)); System.out.println(list.get(1)); System.out.println(list.get(2)); System.out.println("◆ループして表示"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
実行結果:

上記のように配列から値を取得できましたか?
この感覚をつかんでおきましょう。
配列の種類
Javaの配列の種類について紹介します。
今回は「1次元配列、2次元配列、連想配列」の3種類について説明します。
1次元配列
これは先ほど「配列の使い方」で説明しましたが、おさらいで「都道府県」を例にソースコードを記述してみます。
ArrayList<String> list = new ArrayList<String>(); list.add("東京都"); list.add("千葉県"); list.add("青森県"); list.add("秋田県"); System.out.println("◆インデックスを指定して表示"); System.out.println(list.get(0)); System.out.println(list.get(1)); System.out.println(list.get(2)); System.out.println(list.get(3)); System.out.println("◆ループして表示"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
実行結果:

都道府県を表示できました。
配列のイメージは次のような感じです。

2次元配列
2次元配列は、配列の中に配列が入っている状態です。
言葉だと何だか分からないと思いますので、ソースコードを見てみましょう。
ArrayList<String> kantouList = new ArrayList<String>(); kantouList.add("東京都"); kantouList.add("千葉県"); ArrayList<String> tohokuList = new ArrayList<String>(); tohokuList.add("青森県"); tohokuList.add("秋田県"); ArrayList< ArrayList<String> > list = new ArrayList<ArrayList <String>>(); list.add(kantouList); list.add(tohokuList); System.out.println("◆インデックスを指定して表示"); System.out.println(list.get(0).get(0)); System.out.println(list.get(0).get(1)); System.out.println(list.get(1).get(0)); System.out.println(list.get(1).get(1)); System.out.println("◆ループして表示"); for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.get(i).size(); j++) { System.out.println(list.get(i).get(j)); } }
実行結果:

1次元配列と出力結果は同じですが、値の取得には2回ループする必要があります。
2次元配列をイメージで表すと次のようになります。

このように、2次元配列は「行、列」を表すことができます。
この例はインデックス番号なので分かりづらいのですが、「行0 = 関東、行1 = 東北」を表しています。
2次元配列の入れ子と同じ要領で「3次元、4次元」のように入れ子を深くすることもできますが、入れ子が深くなるとループが複雑になるので頭が混乱しますので、できるだけ入れ子は浅くして使いたいものです。
もし、入れ子が複雑になり混乱したときはExcelなどを使って一回表のイメージにして考えると良いです。
連想配列
連想配列はインデックス番号の代わりにキー名称がついた配列です。
Javaでは「HashMapクラス」を使用して連想配列を定義します。
他の配列とは違って、連想配列はインデックス番号がないので、ループするには「for(String value : map.values())」を使用します。
では、ソースコードを見てみましょう。
HashMap<String, String> map = new HashMap<String, String>(); map.put("tokyo", "東京都"); map.put("chiba", "千葉県"); map.put("aomori", "青森県"); map.put("akita", "秋田県"); System.out.println("◆キーを指定して表示"); System.out.println(map.get("tokyo")); System.out.println(map.get("chiba")); System.out.println(map.get("aomori")); System.out.println(map.get("akita")); System.out.println("◆ループして表示"); for (String value : map.values()) { System.out.println(value); }
実行結果:

1次元配列、2次元配列とは違ってインデックス番号を使わないので、ソースコードが見やすいですね。
連想配列をイメージで表すと次のようになります。

連想配列はその名のとおり「連想する配列」ですので、キー名が tokyo なら「東京都」が取得できるように、わかりやすいキー名称をつけて連想させましょう。
まとめ
Javaの配列について次の内容で解説しました。
- 配列とは
- 配列の定義、取得する方法
- 配列の種類「1次元配列、2次元配列、連想配列」の使い方とイメージ
システムを作る上で配列は必ずと言っていいほど使用しますので、配列のイメージだけでも覚えておきましょう。