Java の配列
Java の配列とは?
配列 (array) とは、同じデータ型のデータを複数格納するコンテナです。
配列の型は「型」に [] をつけて、 型 [] という形で宣言します。
配列内に格納できる要素数は固定です。例えば、「5個の整数を格納する配列」 は次のように定義できます。
int[] a = new int[5];
配列の要素には添字 (インデックス) でアクセスする
配列内の要素には添字 (インデックス) でアクセスできます。
要素内の1番目の要素はインデックス [0]、2番目の要素はインデックス [1]、・・・ のように、 n 番目の要素には [n-1] というインデックスでアクセスできます。
次のコード例では、3個の整数を格納できる整数の配列を用意し、 それに、1番目の要素から順に1、2、3 を格納し、 それを逆に、3、2、1 という風に順番にその要素の中身を出力します。
public class TestApp {
public static void main(String[] args) {
int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
System.out.println(a[2]);
System.out.println(a[1]);
System.out.println(a[0]);
}
}
実行結果は次のとおりです。
3
2
1
配列のインデックスアクセスでの注意点
よくある間違いは、存在しない要素にアクセスしてしまうことです。
例えば、配列の要素を3個用意すると、 インデックスは0から始まりますから、使えるインデックスは 0, 1, 2 の3個です。
例えば、上のコード例では a という名前の配列に3個の値を代入していますが、 存在しない4個目の要素 a[3] に値を格納してしまい、次のように書いたとします。
a[3] = 4;
このような誤ったコードを書いた場合、コンパイルはされるのですが、実行時に次のような例外が発生してしまいます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.keicode.java.test.TestApp.main(TestApp.java:9)
このようなメッセージが表示された場合、配列のインデックスに誤りがありますので、プログラムをデバッグしてください。
配列の宣言と初期化を同時に行う
次の書き方で、配列の宣言と初期化を同時に行うこともできます。
型 [] 変数名 = { 初期化データリスト};
この方法を使って、上のコードを書き換えると次のようになります。
public class TestApp {
public static void main(String[] args) {
int[] a = {1, 2, 3};
System.out.println(a[2]);
System.out.println(a[1]);
System.out.println(a[0]);
}
}
配列の操作用クラス java.util.Arrays
配列はデータそのものであって、要素を操作するためのメソッドなどを含んでいません。
配列のデータを特定の値で埋めたり、コピーしたり、配列からリストを作成したりといった、様々な操作を行うために、 Java の標準ライブラリに java.util.Arrays クラスが用意されています。