【Java】配列の使用

2018年3月11日

本稿では、Javaで配列を使用する方法を説明します。

配列を使用すれば、複数の変数をひとまとめにして取り扱うことができます。

配列型はString型と同じく参照型として扱われます。

例えば、int型は基本型ですがintの配列型は参照型になります。

配列型のイメージ
(※厳密には少し違う気がしますが、初心者は下記の図のイメージで問題ないでしょう)

配列型の宣言と初期化

配列型は(型名)[]で宣言できます。

配列の初期化は配列変数に=new 型名[サイズ]と指定します。

ここでnewという新しいキーワードが出てきますが、ここではそういうものなんだと思って読み飛ばしてください。

作成した配列に、[番号]を記述することでその位置にデータを代入したり参照したりできます。

それでは、サンプルコードを見ていきましょう。

public class Test{
	public static void main(String[] args){
		int[] dataList = new int[3];
		dataList[0] = 30;
		dataList[1] = 2;
		System.out.println(dataList[0]);
	}
}
実行結果

30

この例ではint[] dataList = new int[3];と定義して3つのデータ数を持つ配列を作成しているわけですが、データの番号は1、2、3で参照するのではなく、0、1、2といった形で、参照しなければなりません。

配列の添え字番号は必ず0から始まるのです。上記の例で3番にアクセスしようとすると、エラーが発生してプログラムが停止してしまいます。

public class Test{
	public static void main(String[] args){
		int[] dataList = new int[3];
		dataList[3] = 30;
		System.out.println(dataList[0]);
	}
}
実行結果

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:4)

ArrayIndexOutOfBoundsExceptionというエラーですが、配列のサイズをオーバーして参照しようとしたときに発生します。
初心者のうちは頻繁に目にすることになると思うので、覚えておくとデバッグの時に役立ちます。


配列を新しく生成した時に値を初期化しなかった場合は全て何らかの値で初期化します。

この何らかの値ですが、型によって異なります。

例えばint型なら0で初期化されますし、boolean型ならfalseで初期化されます。

参照型はnullで初期化されます。nullというのはデータがないことを示す値です。

public class Test{
	public static void main(String[] args){
		int[] intList = new int[3];
		boolean[] boolList = new boolean[3];
		String[] strList = new String[3];
		System.out.println(intList[0]);
		System.out.println(boolList[0]);
		System.out.println(strList[0]);
	}
}
実行結果

0
false
null


配列を作成するときに任意の値で初期化したものを同時に作成することもできます。

public class Test{
	public static void main(String[] args){
		int[] intList = {1,1,2,54,30};
		int[] intList2 = new int[]{1,1,2,54,30};//こっちの書き方もできます。
		System.out.println(intList[0]);
		System.out.println(intList2[4]);
	}
}
実行結果

1
30

2次元配列、多次元配列

配列の二次元化、さらに3次元化以上も可能です。配列の3次元以上はほとんど使用しません。初心者は二次元は使えるようにしておきましょう。

といっても二次元以上の配列を作る場合の記述は「[]」を増やすだけなのですぐにわかると思います。

public class Test{
	public static void main(String[] args){
		int[][] intList = new int[2][3];
		intList[0][0] = 25;
		intList[0][1] = 15;
		intList[1][0] = 55;
		System.out.println(intList[0][1]);
		System.out.println(intList[0][2]);
		System.out.println(intList[1][0]);
	}
}
実行結果

15
0
55


二次元以上の時も、任意の値を設定し、初期化することも可能です。入れ子になるので少し見辛くなります。

public class Test{
	public static void main(String[] args){
		int[][] intList = {
			{30,50}
			,{10,20,40}
		};
		System.out.println(intList[0][0]);
		System.out.println(intList[1][2]);
	}
}
実行結果

30
40

配列が使えるといろいろメリットがあります。今はそれほどメリットを感じられないかもしれませんが、繰り返し処理などで、役に立ちます。

二次元配列まではある程度使えるようになっておきましょう。

Java配列

Posted by nompor