Javaの配列とは?書き方や使い方をわかりやすく解説

Javaをこれから学ぶ方にとって、「配列」は必ず理解しておきたい基本的な仕組みです。
本記事では、Javaにおける配列の書き方や使い方を丁寧に解説していきます。
記事の最後には、実践的な演習問題と多くの初学者が抱きがちな疑問に答えるFAQも用意しています。
この記事を読み終える頃には、Javaの配列について「なんとなく分かる」から「ちゃんと使える」状態になることを目指しています。
Javaの配列とは?
配列(Array)とは、同じ種類のデータをまとめて管理するための「箱の集合体」のようなものです。
たとえば、5人分のテストの点数や、7日間の天気、10個の商品名など、複数のデータをひとつにまとめて取り扱うことができます。
配列のイメージ
配列は「連続した箱が並んでいる状態」を想像するとわかりやすいです。
それぞれの箱には番号(インデックス)が付いており、先頭は「0番目」、次は「1番目」、というように順番が決まっています。
この番号を使って、中身を取り出したり変更したりします。
どんなときに使うの?
以下のような場面で配列はとても便利です:
- 同じ種類のデータを大量に扱いたいとき
- 複数のデータに同じ処理をしたいとき(ループ処理)
- 順番に並んだデータを保存したいとき
- 学校のクラス全員の点数を計算
- 天気予報のデータを1週間分まとめる
- 複数のユーザー名を管理する
Javaの配列の基本的な書き方
配列の宣言と初期化にはいくつか方法があります。まずは最も基本的な書き方を見てみましょう。
int[] scores = new int[5];
解説
int[]
は「整数型の配列」という意味です。scores
は配列の名前(変数名)です。new int[5]
は「整数を5つ入れられる配列を作る」という意味です。
この時点で、配列の中にはすべて 0
が自動で入っています(int型の初期値)。
配列に値を代入する方法
それでは、実際に配列に値を入れてみましょう。以下のコードは、5人分のテストの点数を設定する例です。
scores[0] = 90;
scores[1] = 80;
scores[2] = 75;
scores[3] = 95;
scores[4] = 85;
解説
scores[0]
は最初の箱(0番目)にアクセスしています。=
を使って値を代入しています。- 配列の番号(インデックス)は
0
から始まるので、5つなら0~4
になります。
配列の中身を出力してみよう
入れた値を画面に表示してみましょう。以下のコードは1つずつ出力する方法です。
System.out.println(scores[0]);
System.out.println(scores[1]);
System.out.println(scores[2]);
System.out.println(scores[3]);
System.out.println(scores[4]);
同じような処理を何度も書くのは少し面倒ですよね? そこで活躍するのが「for文」です。
for文で配列を簡単に扱う
for
文を使えば、配列の全要素を一度に処理することができます。
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
解説
i
はカウンタ(ループ用の変数)です。scores.length
は配列の長さ(この場合は5)を自動で取得します。scores[i]
で順番に値を取り出しています。
このようにすれば、配列の要素数が変わっても、柔軟に対応できます。
配列を一気に初期化する方法
値を1つずつ入れるのではなく、最初からすべての値を指定して配列を作る方法もあります。
int[] scores = {90, 80, 75, 95, 85};
この方法ならコードがスッキリして、すぐに使い始めることができます。
配列を使うときの注意点
インデックスの範囲外にアクセスするとエラー
System.out.println(scores[5]); // エラーになる!
インデックスは0から始まり、scores[5]
は6番目にあたりますが、存在しないためエラーになります。
異なる型のデータは代入できない
String[] names = {"田中", "山田"};
names[0] = 100; // エラーになります
文字列の配列に数値を入れることはできません。配列の型にあったデータだけを入れるようにしましょう。
配列の中身を更新することは可能
scores[2] = 88; // 75だった点数を88に変更
既存の値はあとから書き換えることができます。
実用的な配列の使用例
配列の使用例を見ていきましょう。
平均点を計算するプログラム
int[] scores = {90, 80, 75, 95, 85};
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
double average = (double) sum / scores.length;
System.out.println("平均点: " + average);
解説
- 配列内の値をすべて
sum
に加算していきます。 - 最後に合計を人数(配列の長さ)で割って平均を出します。
(double)
を付けることで、小数点以下の値も計算されます。
配列を使った演習問題に挑戦!
演習問題を用意しました。
知識を定着させるためにも、ぜひチャレンジしてみてください。
問題1:配列を使って、好きな果物を3つ保存し、表示してください。
解答例
String[] fruits = {"りんご", "バナナ", "みかん"};
for (int i = 0; i < fruits.length; i++) {
System.out.println(fruits[i]);
}
問題2:5人の点数が入った配列の中で、最大値を出力してください。
解答例
int[] scores = {60, 70, 85, 90, 75};
int max = scores[0];
for (int i = 1; i < scores.length; i++) {
if (scores[i] > max) {
max = scores[i];
}
}
System.out.println("最高点: " + max);
問題3:配列に入っているすべての偶数を表示してください。
解答例
int[] numbers = {10, 15, 22, 33, 40};
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
System.out.println(numbers[i]);
}
}
よくある質問(FAQ)
よくある質問です。
Q1. 配列の長さは途中で変えられますか?
A. いいえ。Javaの配列は一度作ったら長さを変更できません。後から要素の数を変えたい場合は、ArrayList
を使うのが一般的です。
Q2. 配列の中に配列を入れることはできますか?
A. はい、可能です。これを「多次元配列」と呼びます。たとえば、表形式のデータなどを扱うときに便利です。
int[][] matrix = new int[2][3]; // 2行3列の配列
Q3. 配列に空の値を入れることはできますか?
A. 基本データ型(intなど)は、自動的に初期値が入ります(intなら0)。参照型(Stringなど)は null
になります。
Q4. 配列はどのくらいの数まで使えますか?
A. Javaの配列に格納できる要素数は、理論上は Integer.MAX_VALUE
(約21億)まで可能ですが、実際にはメモリの制限に依存します。
Q5. 配列をソート(並び替え)するにはどうしたらいいですか?
A. Java標準の Arrays.sort()
メソッドを使うと簡単に並び替えができます。
import java.util.Arrays;
int[] scores = {90, 70, 80};
Arrays.sort(scores);
まとめ
Javaの配列は、使いこなせるようになると一気にプログラミングが楽しくなります。
最初は難しく感じるかもしれませんが、実際に手を動かしてコードを書いていくことで、自然と理解できるようになります。
まずは簡単なコードから試して、少しずつ応用していきましょう。