日本プログラミング物語

プログラミング技術を磨きながら愛国心を養うサイト

Java配列プログラミング

配列とは

複数の同じ型の変数がある場合、それらを一まとめにして扱うと便利なことがあります。
配列は、それを行うための機能です。
プログラミング言語には欠かせない機能なので、Java以外のプログラミング言語でもほとんどの場合、配列が使えるようになっています。

普通の変数は面倒くさい

能書きはこれぐらいにしておいて、具体的なプログラムを見てみましょう。
ここに、反日国家を表示するプログラムがあります。

(ファイル名) SingleVariable.java

public class SingleVariable {
    public static void main(String[] args) {
	String hannichiKokka0 = "韓国";
	String hannichiKokka1 = "北朝鮮";
	String hannichiKokka2 = "中国";

	//反日国家を表示する
	System.out.println(hannichiKokka0);
	System.out.println(hannichiKokka1);
	System.out.println(hannichiKokka2);
    }
}

(コンパイル & 実行結果)

$ javac SingleVariable.java
$ java SingleVariable
韓国
北朝鮮
中国

しかし、このプログラムには以下のような欠点があります。
1. 反日国家の数だけ、System.out.println文を書かなくてはならない。
2. 親日国家を表示する同じようなプログラムを書こうとすると、プログラムの修正が大変になる。

配列変数の出番だよ

これらを解決するために、通常の変数ではなく配列変数を使います。
まずは、このプログラムを配列変数を使ったものに修正してみます。

(ファイル名) ArrayVariable.java

public class ArrayVariable {
    public static void main(String[] args) {
	//配列変数の宣言
	String[] hannichiKokka;

	//配列の生成
	hannichiKokka = new String[3];

	//配列に代入
	hannichiKokka[0] = "韓国";
	hannichiKokka[1] = "北朝鮮";
	hannichiKokka[2] = "中国";

	//反日国家を表示する
	System.out.println(hannichiKokka[0]);
	System.out.println(hannichiKokka[1]);
	System.out.println(hannichiKokka[2]);
    }
}

実行結果は最初のプログラムと同じなので省略します。

それでは、プログラムの内容を追って行きましょう。

1. 配列の宣言
変数の型[] 変数名;
と書きます。

String[] hannichiKokka;
と書けば、変数hannichiKokkaが配列変数であることを表します。

2. 配列の確保
配列変数 = new 変数の型[サイズ];
と書きます。

配列変数を宣言しただけでは、どれぐらいの大きさの配列を使うのかが分からないので、この記述によって配列の大きさを確保します。

hannichiKokka = new String[3];
と書けば、String型(文字列型)3個分の領域を確保します。

3. 配列変数に値を代入
配列を確保しただけでは、中身は空の状態です。
そこで、配列を利用するために、配列のそれぞれの箱に値を代入します。

それには、
配列変数[添字] = 値;
と書きます。
添字は、0から(配列のサイズ-1)までの値を取ります。
たとえば、今回のプログラムでは、配列hannichiKokkaの大きさは3なので、添字は0から2までとなります。
添字の最大値は、配列の大きさより1だけ小さくなることに注意して下さい。

4. 配列変数の値の取得
配列変数から値を取得するときも、添字を使います。

配列変数[添字]
で値を取得できます。

今回のプログラムでは、配列hannichiKokkkaに添字0から2までを指定して、中身を表示しています。

System.out.println(hannichiKokka[0]); //「韓国」を表示する。
System.out.println(hannichiKokka[1]); //「北朝鮮」を表示する。
System.out.println(hannichiKokka[2]); //「中国」を表示する。

配列の便利な使い方

ところで、配列を使ったプログラムは、そうでないものよりも長くなってしまいました。:-(
これでは、配列を使用する利点がないばかりか、かえって面倒くさくなってしまったように思えます。

実は、配列変数を便利に使うためには、添字に整数型変数を使います。

プログラムを修正し、forループの中で添字を変化させてみます。

(ファイル名) ArrayVariable.java

public class ArrayVariable {
    public static void main(String[] args) {
	//配列変数の宣言
	String[] hannichiKokka;

	//配列の生成
	hannichiKokka = new String[3];

	//配列に代入
	hannichiKokka[0] = "韓国";
	hannichiKokka[1] = "北朝鮮";
	hannichiKokka[2] = "中国";

	//反日国家を表示する
	for(int i=0; i<hannichiKokka.length; i++) {
	    System.out.println(hannichiKokka[i]);
	}
    }
}

太字が変更部分です。
このように記述すると、変数iが0から1ずつ増えていきます。
すなわち、配列変数hannichiKokkaの添字が0,1,2と変化していくので、ループを回る度に次の要素を表示します。

このプログラムでは、変数iの上限範囲をhannichiKokka.lengthで取得しています。
lengthは配列のプロパティで、
配列変数.length
と書けば、配列の大きさを取得することができます。

配列の宣言と初期化を一気に書く

通常、配列の宣言と領域の確保はセットで行うことが多いので、これを一行で書く方法が用意されています。

変数の型[] 変数名 = new 変数型[サイズ]
と書けば、配列の宣言と領域確保を一度に行えます。
また、
変数の型[] 変数名 = {要素0, 要素1, 要素2, …, 要素n};
と書けば、配列の宣言、生成、初期化をいっぺんに行うことができます。
この書き方を用いて、親日国を表示するプログラムを書くと次の様になります。

(ファイル名) LovingJapan.java

public class LovingJapan {
    public static void main(String[] args) {
	//配列変数の宣言と生成を一気に行う
	String[] shinnichiKokka = {
	    "トルコ", "パラオ", "台湾", "ミャンマー", "タイ"};

	//親日国を表示する
	for(int i=0; i<shinnichiKokka.length; i++) {
	    System.out.println(shinnichiKokka[i]);
	}
    }
}

(コンパイル & 実行結果)

$ javac LovingJapan.java
$ java LovingJapan
トルコ
パラオ
台湾
ミャンマー
タイ

(関連記事)
簡単なJavaプログラムを書く

Comments are currently closed.