ゆるゆるプログラミング

・配列

配列とは、同じ変数型のデータを複数個まとめて管理するデータの持ち方です。例えば100個の値の平均値を計算する場合、違う名前で宣言した100個の変数に代入した値を合計し、その合計値を100で割ることで平均値を計算することができます。実際にこのようなプログラムを作成するときにデータの個数が多い場合は、それら全ての変数を宣言するのは事実上不可能です。このような複数のデータを一度に処理するとき便利なのが配列です。以下の図は、n個の変数をまとめた配列aをイメージしたもので、添え字(インデックス)という番号に対応した値の取得・代入が出来ることを表しています。配列名aの後ろに[添え字]を付けることで、その値にアクセスすることが出来ます。添え字は0から開始なので、1番目のデータはa[0]に、n番目のデータはa[n-1]に格納されています。

配列

それでは、配列の使い方について説明します。

配列は、配列名とデータ型を使って、以下のように宣言します。

データ型[] 配列名;

  または

データ型 配列名[];

配列を宣言しただけでは使えません。次に、要素数(データの個数)をnew演算子で指定します。

配列名 = new データ型[ 要素数 ];

上の図のn=100、変数の型をintとした場合、以下のソースコードとなります。

int[] a;

a = new int[ 100 ];

次に配列を使って平均値を計算するプログラムを解説します。以下がそのJavaソースコードと実行結果です。

Mean1.java
001:    public class Mean1 {
002:    	public static void main( String[] args ) {
003:    		// 配列aを宣言
004:    		int[] a;
005:    
006:    		// 要素数10を設定
007:    		a = new int[ 10 ];
008:    
009:    		// 値を代入
010:    		a[ 0 ] = 18;
011:    		a[ 1 ] = 73;
012:    		a[ 2 ] = 54;
013:    		a[ 3 ] =  6;
014:    		a[ 4 ] = 12;
015:    		a[ 5 ] = 17;
016:    		a[ 6 ] = 77;
017:    		a[ 7 ] =  8;
018:    		a[ 8 ] = 33;
019:    		a[ 9 ] =  2;
020:    
021:    		// 合計値を計算
022:    		int total = 0;
023:    
024:    		for ( int i = 0; i < a.length; ++ i ) {
025:    			// 添え字に変数iを使用
026:    			total += a[ i ];
027:    		}
028:    
029:    		// 平均値を計算
030:    		double mean = (double)total / (double)a.length;
031:    
032:    		// 結果を表示
033:    		System.out.println( "平均値は" + mean );
034:    	}
035:    }

Mean1.javaの出力結果

平均値は30.0

ここからソースコードを順番に解説していきます。

001:    public class Mean1 {

クラス名を、Mean1としています。

003:    		// 配列aを宣言
004:    		int[] a;

int型配列aを宣言しています。

006:    		// 要素数10を設定
007:    		a = new int[ 10 ];

10個の要素数を指定しています。

009:    		// 値を代入
010:    		a[ 0 ] = 18;
011:    		a[ 1 ] = 73;
012:    		a[ 2 ] = 54;
013:    		a[ 3 ] =  6;
014:    		a[ 4 ] = 12;
015:    		a[ 5 ] = 17;
016:    		a[ 6 ] = 77;
017:    		a[ 7 ] =  8;
018:    		a[ 8 ] = 33;
019:    		a[ 9 ] =  2;

配列a[0]~a[9]に値を代入しています。

021:    		// 合計値を計算
022:    		int total = 0;
023:    
024:    		for ( int i = 0; i < a.length; ++ i ) {
025:    			// 添え字に変数iを使用
026:    			total += a[ i ];
027:    		}

for文でiを0~9まで1ずつ変化させ、合計値を格納する変数totalにa[i]を足しています。a.length配列aの要素数で、この例の場合10です。

029:    		// 平均値を計算
030:    		double mean = (double)total / (double)a.length;

合計値totalを配列要素数(a.length)で割り、平均値を格納する変数meanに代入しています。このとき合計値を配列数で割った値が整数にならないことがあるので、double型型キャストして計算しています。

032:    		// 結果を表示
033:    		System.out.println( "平均値は" + mean );

平均値を表示しています。これで終了です。

次に上記ソースコード配列へのデータ代入方法だけを変更したものを紹介します。

Mean2.java
001:    public class Mean2 {
002:    	public static void main( String[] args ) {
003:    		// 配列aを宣言
004:    		int[] a = { 18, 73, 54, 6, 12, 17, 77, 8, 33, 2 };
005:    
006:    		// 合計値を計算
007:    		int total = 0;
008:    
009:    		for ( int i = 0; i < a.length; ++ i ) {
010:    			// 添え字に変数iを使用
011:    			total += a[ i ];
012:    		}
013:    
014:    		// 平均値を計算
015:    		double mean = (double)total / (double)a.length;
016:    
017:    		// 結果を表示
018:    		System.out.println( "平均値は" + mean );
019:    	}
020:    }

以下が変更部分です。

003:    		// 配列aを宣言
004:    		int[] a = { 18, 73, 54, 6, 12, 17, 77, 8, 33, 2 };

int型配列aを宣言して、さらに値を代入しています。代入した値の数が配列要素数になります。

■関連コンテンツ

配列を返すメソッド   配列を返すメソッドの作り方
変数について(7)   Javaで扱う変数について解説

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ