icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

mentor-kaeriyama

Javaの配列について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

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

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

目次

1時間でできる無料体験!

そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。

 

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

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

 

田島悠介

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

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

Javaの配列の書き方

配列宣言の書式

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

型名 配列名[] ;
配列名 = 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]からなんですね。

田島悠介

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

大石ゆかり

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

田島悠介

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

 

Javaの配列の基本操作

配列初期化の書式

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

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

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

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

配列の要素数の取得

配列は要素の数が生成する段階で決まってしまいます。

途中から要素の挿入、追加、削除はできません。

そのため配列のデータを扱うときには配列の要素数が何個なのかを把握しておくことが重要になります。

配列の要素数は「配列名.length」で取得できます。

 

[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で割れば、平均を簡単に計算することができます。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

多次元配列

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

多次元配列とは、配列の要素が配列になっている配列の事です。
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の学習サイトもまとめているので、合わせてご覧ください。

 

1時間でできる無料体験!

Javaを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのJavaコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaやServletの技術を使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する