基礎から学ぼう!Javaの配列の使い方【初心者向け】

Javaでで書く配列の使い方、多次元配列について初心者向けに解説しています。プログラミングをする上で配列は業務でもよく利用する知識になるので、今のうちに覚えておくと良いでしょう。基礎から説明しているので、誰でも理解できるでしょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Javaの配列について初心者向けに解説しています。

プログラミングをする上で配列は業務でもよく利用する知識になるので、今のうちに覚えておくと良いでしょう。

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説している記事をまずご覧ください。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

なお、今回の記事の内容は動画でもご覧いただけます。

テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

田島悠介

配列についての学習をしようか。配列はとても大事なデータ構造だよ。

大石ゆかり

田島メンター!!配列っていうのは何ですか~?

田島悠介

複数の値をひとつにまとめて変数に格納したものだよ。まとめられた値は順番に並べられていて、そこから指定のものを取り出したりもできるんだ。

大石ゆかり

うーん、ちょっとすぐにはイメージができないです……

田島悠介

実際のコードを見ると分かりやすいかもしれないね。まずは書き方を覚えてみよう。

 

配列とは

配列とは、同じ型の変数を1つにまとめて扱えるようにした便利な仕組みです。

例えば、テストの結果を集計するような場合、Aさんの点数、Bさんの点数・・・とそれぞれに変数を使用するよりも、5人分の点数を1つの配列として扱う方が扱いやすくなります。

 

配列の書き方

配列宣言の書式

配列を使うには、まず配列を宣言します。

型名 配列名[] ;
配列名 = new  型名[配列の長さ];

 

一行にまとめて書くこともできます。

型名 配列名[] = new  型名[配列の長さ];

 

例としては、以下のように使用します。

int scores[];
scores = new int[5];

 

または、1行で、

int scores[]; = new int[5];

 

配列に値を設定する書式

次は宣言した配列に、値を設定してみましょう。

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

 

インデックスとは、配列の何個目かを指定する数値になります。

例としては、以下のように使用します。

scores[0] = 80;
scores[1] = 92;
scores[2] = 60;
scores[3] = 100;
scores[4] = 78;

インデックスは0から始まることに注意してください。

5個の配列の場合、インデックスは0~4になります。

 

大石ゆかり

配列の中身の順番ですが、[1]からじゃなくて[0]からなんですね。

田島悠介

そうだね。これは配列内の要素を参照する際にとても大事なことなので覚えておこう。

大石ゆかり

格納したものを使いたいときは、どうすればいいんですか~?

田島悠介

それでは実際に、どうやって配列内の値を取り扱うか見てみよう。

 

配列初期化の書式

宣言と同時に値を設定することもできます。

型名 配列名 = {値1, 値2, 値3.値4, 値5};

例としては、以下のように使用します。

int scores[] = {80, 92, 60 ,100, 78};

 

[PR] Javaで挫折しない学習方法を動画で公開中

実際に配列を書いてみよう

では、実際に配列を使ってみましょう。

例題として、5人のテスト結果から最高得点を取得するプログラムを書いてみましょう。

 

まずは、配列を定義します。

int scores[] = {80, 92, 60 ,100, 78};

 

配列の要素に対して処理をします。

for文を使って、1つずつmaxと比較して、大きかったら、maxに代入しています。

for(int i = 0; i<scores.length; i++){
	// 最高得点の保存
	if(scores[i] > max) max = scores[i];
}

 

全体はこのようになります。

public static void main(String args[]){
	// 最高得点
	int max = 0;

	// 配列の宣言と初期化
	int scores[] = {80, 92, 60 ,100, 78};

	// 配列の要素ごとに処理
	for(int i = 0; i<scores.length; i++){
		// 最高得点の保存
		if(scores[i] > max) max = scores[i];
  	}

	System.out.println("max = " + max);
}

実行すると「max = 100」が出力されました。
ちゃんと最高得点を出力できました。

同じように、for分の中で合計したり、for文の後でscores.lengthで割れば、平均を簡単に計算することができます。

 

多次元配列

次は多次元配列について説明しましょう。

多次元配列とは、配列の要素が配列になっている配列の事です。
5人のテスト結果を3教科分扱ったりできます。

実際にコードを見てみましょう。
初期化の部分で、3教科文の値を設定しています。

多次元配列の要素ごとに処理の部分をfor文を2重にして、
教科毎のループ、個人毎のループで処理しています。

public static void main(String args[]){
	// 個人の合計得点の配列
	int totals[] = new int[5];

	// 多次元配列の宣言と初期化
	int scores[][] = {{80, 92, 60 ,100, 78}, // 国語の得点配列
			{60, 45, 65 ,56, 80},    // 数学の得点配列
			{64, 89, 48 ,45, 67}};   // 英語の得点配列

	// 多次元配列の要素ごとに処理
	for(int i = 0; i<scores.length; i++){	   // 教科毎のfor文
		for(int j = 0; j<scores[i].length; j++){// 個人毎のfor文 
			// 個人の合計得点の保存
			totals[j] += scores[i][j];
		}
	}

	// 合計得点の表示
	for(int i = 0; i<totals.length; i++){
		System.out.println(i + "さんの合計得点 = " + totals[i]);
	}
}

 

実行すると、
0さんの合計得点 = 204
1さんの合計得点 = 226
2さんの合計得点 = 173
3さんの合計得点 = 201
4さんの合計得点 = 225

と個人の合計得点が出力されました。

 

まとめ

配列は上記以外にも、色々な使い方ができて便利な仕組みです。

使いこなせるようになると、プログラムをシンプルにわかりやすく書けるようになってきます。検索や、比較などの便利な仕組みもありますので、java.util.Arraysクラスなども参照してみてください。

 

田島悠介

配列内の値はこのように条件文やfor文などでも使用することができるよ。

大石ゆかり

[]内の数値で要素を指定するんですね。なるほど、だからさっきの0から始まるということが大事なんだ。

田島悠介

その部分を間違ってしまうと、全く別の値が呼び出されてしまうからね。for文で繰り返しに使用する場合も開始する場所に注意しよう。

大石ゆかり

実際に繰り返し文を書いてみて練習してみます。ありがとうございました!

 

また、Javaの学習サイトもまとめているので、合わせてご覧ください。

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。