今回はJavaの配列について記事にしたいと思います。
配列は、同じ種類のデータをまとめて一つに管理できる「箱」のようなものです。
たとえば、クラスのみんなのテスト点数をプログラムで扱いたいとします。一人一人の点数を別々の変数に入れると、とても大変です。
int score1 = 80;
int score2 = 90;
int score3 = 75;
// 生徒が30人いたら、30個の変数が必要になります!
これでは効率が悪いので、配列を使って点数をまとめて管理します。
配列のイメージ
配列は、一列に並んだロッカーや引き出しのようなものです。
各引き出し(要素)には、データが一つずつ入っています。
配列全体に名前をつけて、引き出しごとに番号(インデックス)でアクセスします。
図で表すと:
配列 scores
+-----+-----+-----+-----+-----+
| 80 | 90 | 75 | 85 | 95 |
+-----+-----+-----+-----+-----+
[0] [1] [2] [3] [4]
scores[0] は最初の要素(80)を指します。
配列の使い方
- 配列の宣言と作成
まず、配列を宣言して作成します。
// 型[] 配列名 = new 型[要素数];
int[] scores = new int[5];
int[] は「整数型の配列」を意味します。
scores は配列の名前です。
new int[5] で、5つの整数を入れることができる配列を作成します。
- 配列に値を入れる
各要素に値を代入します。
// 配列名[インデックス] = 値;
scores[0] = 80; // 1番目の要素に80を入れる
scores[1] = 90; // 2番目の要素に90を入れる
scores[2] = 75;
scores[3] = 85;
scores[4] = 95;
インデックスは0から始まるので、注意してください。
- 配列から値を取り出す
配列の要素を使って計算や表示ができます。
System.out.println(scores[2]); // 出力:75
- 配列の長さを取得する
配列の要素数(長さ)を知りたいときは、配列名.length を使います。
int length = scores.length; // lengthは5になります
配列を使った例題
例題:5人の生徒のテスト点数の平均を計算するプログラム
public class Main {
public static void main(String[] args) {
// 1. 配列の宣言と作成
int[] scores = new int[5];
// 2. 配列に値を入れる
scores[0] = 80;
scores[1] = 90;
scores[2] = 75;
scores[3] = 85;
scores[4] = 95;
// 合計点を計算する変数を用意
int sum = 0;
// 3. 配列から値を取り出して合計を計算
for(int i = 0; i < scores.length; i++) {
sum += scores[i]; // sum = sum + scores[i];
}
// 平均点を計算
double average = (double)sum / scores.length;
// 結果を表示
System.out.println("合計点:" + sum);
System.out.println("平均点:" + average);
}
}
実行結果:
合計点:425
平均点:85.0
forループを使って、配列の全ての要素を順番に取り出しています。
sum += scores[i]; は、合計を計算するためのコードです。
ポイントまとめ
配列は同じ型のデータをまとめて管理できる。
インデックスは0から始まるので、最初の要素は配列名[0]です。
配列の長さは配列名.lengthで取得できます。
forループと組み合わせて使うと、全ての要素を簡単に操作できます。
配列の便利な初期化方法
配列を作成すると同時に値を入れることもできます。
int[] scores = {80, 90, 75, 85, 95};
これで、5つの要素を持つ配列scoresが作成され、それぞれに値が代入されます。
配列の応用:二次元配列
配列の中に配列を持つ、二次元配列もあります。
例:クラスの成績表(生徒5人、科目3つ)
int[][] grades = {
{80, 85, 90}, // 1人目の点数(国語、数学、英語)
{75, 80, 85}, // 2人目
{90, 95, 100}, // 3人目
{65, 70, 75}, // 4人目
{85, 80, 90} // 5人目
};
grades[0][1] は、1人目の2番目の科目の点数(85)を指します。
grades.length は生徒の人数(5)を示します。
grades[0].length は科目の数(3)を示します。
二次元配列を使った例題
例題:各生徒の合計点と平均点を計算する
public class Main {
public static void main(String[] args) {
int[][] grades = {
{80, 85, 90}, // 1人目
{75, 80, 85}, // 2人目
{90, 95, 100}, // 3人目
{65, 70, 75}, // 4人目
{85, 80, 90} // 5人目
};
for(int i = 0; i < grades.length; i++) {
int sum = 0;
for(int j = 0; j < grades[i].length; j++) {
sum += grades[i][j];
}
double average = (double)sum / grades[i].length;
System.out.println((i+1) + "人目の合計点:" + sum + "、平均点:" + average);
}
}
}
実行結果:
1人目の合計点:255、平均点:85.0
2人目の合計点:240、平均点:80.0
3人目の合計点:285、平均点:95.0
4人目の合計点:210、平均点:70.0
5人目の合計点:255、平均点:85.0
配列を使うときの注意点
配列のインデックスは0から始まることを忘れないでください。
配列の範囲外(存在しない要素)にアクセスするとエラーになります。
int[] scores = new int[5];
scores[5] = 100; // エラー!インデックスは0~4まで
配列のサイズは一度決めたら変更できません。
まとめ
配列は、同じ種類のデータをまとめて扱うための便利な仕組みです。
大量のデータを効率的に管理・操作することができます。
ループと組み合わせることで、全ての要素に対して処理を行うことが簡単になります。