Developer

【はじめてのjava】配列【配列とArrayList編】
2021.02.01
Lv1

【はじめてのjava】配列【配列とArrayList編】

はじめてのJava

このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。


配列とArrayList編

配列とArrayList編では、複数のデータを一つの変数によってまとめて扱うことのできる配列とAllayListについて扱っています。

今回は、配列について扱っていきます。


目次


配列


配列とは

配列とは、「同じ型のデータを複数持つことが出来る入れ物」のことです。
配列は、同じデータ型の値をまとめて扱う際に使用します。
同じ型のデータが1次元的に並んだ配列を1次元配列と呼びます。
配列には、intやlongなどの基本データ型のデータだけでなく、StringやIntegerなどのオブジェクト型のデータも持つことが出来ます。
下の図は、arrayという名の配列に複数のint型のデータを格納した際のイメージです。

一つの配列に複数のデータを格納することで、「変数を大量に作成する必要がなくなる」、「複数のデータを一つのまとまりとして扱うことが出来るようになる」等のメリットがあり、より柔軟なプログラムの記述が可能になります。


配列の宣言

配列を使用するにはまず配列の宣言を行います。
配列を宣言する際の基本書式は、

データの型[] 配列名;

または、

データの型 配列名[];

のように記述します。
例えば、int型のデータを複数個格納するarrayという名の配列を宣言する場合は、

int[] array;

のように記述して配列を宣言します。
配列の宣言では、配列に格納するデータ型とその配列の名前を決定しています。また、配列の宣言であることを明確にするために、データ型または配列名の後ろに[]を記述しています。最後に宣言の末尾をセミコロン「;」で区切っています。


配列の生成

配列の宣言をした後は、配列の生成を行います。これによって、配列の領域を確保しています。確保された領域に格納される一つ一つのデータのことを要素と呼びます。
配列の生成の基本書式は、

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

と記述します。
例えば、先ほど宣言した配列arrayの領域を確保する際は以下のように記述します。

int[] array;//配列の宣言
array = new int[10];//配列の生成

上記のように記述することで、int型のデータを10個格納することが出来る配列arrayを生成しています。
配列には一度サイズ(要素数)が決定されると以降は要素数を変更することが出来ないという性質があるので注意が必要です。
また、配列の宣言と生成は1行の式で記述することが出来ます。

データの型[] = new データ型[要素数];

と1行で記述することで配列の宣言と生成を同時に実行することが出来ます。
上記の例で紹介した配列の宣言と生成を1行で記述すると、

int[] array = new int[10];//配列の宣言と生成

のように記述することが出来ます。


配列の初期値

配列の生成後、値が代入されていない要素には、データ型ごとに初期値が設定されています。
データ型ごとの初期値は以下の表にまとめてあります。

データ型 初期値
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0D
char ‘\u0000’
boolean false
参照型(オブジェクト型) null

生成した配列の各要素に値を代入する際は、

配列名[インデックス] = 値;

と記述します。
インデックスとは、配列の各要素を識別するためにつけられている通し番号のことです。添え字とも呼ばれます。
上記の図のように、配列の各要素にはインデックスという番号が付けられています。配列の各要素を呼び出したり、値を代入する際にはこのインデックスを指定して目的の要素を指定します。

Javaでは、各要素にインデックスを付ける際、0番から数を数え始めるので注意が必要です。
例えば、10個の要素を格納できるint型の配列arrayの3個目の要素に30という値を代入しようとしたとき、

int[] array = new int[10];
array[2] = 30;

と記述します。
配列のインデックスは0から数え始めるため、3個目の要素のインデックスは2番となることに注意しましょう。


配列の初期化

配列の宣言と生成をする際に、同時に初期値を与えることが出来ます。これを配列の初期化と呼びます。
配列の初期化は、

データ型[] 配列名 = {初期値1, 初期値2, ・・・, 初期値n};

のように記述します。
この配列の初期化では要素数を指定していませんが、{}内のカンマで区切ったデータの数がそのまま要素数として領域が確保されます。
例えば、

int[] array = {10,20,30,40,50};

と記述した場合、以下の図のような配列を生成したことになります。

長くなってしまいましたが、以上が配列をプログラムで利用するにあたって必要な基礎知識となります。
実際にサンプルコードを作って配列の生成について確認してみましょう。


サンプルコード

public class Sample4{
	public static void main(String[] args) {
		int[] array = {10,20,30,40,50};
		int sum = 0;//配列の全要素の和を求めるために利用

		//array[i]として、array[0]~array[4]について繰り返し文を実行
		for(int i = 0; i < 5;i++) {
			System.out.println("array[" + i + "]の値は"+array[i]+"です。" );
			sum += array[i];//sum = sum + array[i];
		}

		System.out.println("配列arrayの全要素の和は"+ sum );
	}
}

実行結果

サンプルコードでは配列の初期化で要素数5つの配列arrayを作成した後、for文を利用してarrayのすべての要素の値を出力しています。
また、for文でarrayの要素の値を一つずつ出力する際、変数sumに要素の値を一つずつ加算していき、arrayの全要素の和を計算して最後に出力しています。


ポイント

配列は、配列の宣言と生成を行い、配列の各要素に値を代入することで利用することが出来る。
配列の初期化を行うことで、配列の宣言と生成、値の代入をまとめて実行することが出来る。


はじめてのJavaシリーズの目次はこちら
基本構文編の記事一覧はこちら


java 11 の練習問題一覧はこちら