Java | 配列

Java Java
スポンサーリンク

Javaの配列の基本を、例題つきでやさしく解説

初めての配列は「同じ種類のデータを、番号つきの箱に並べて保管する仕組み」と考えると分かりやすいです。1つの変数に1つの値しか入れられないのに対して、配列はたくさんの値をまとめて管理できます。


配列ってなに?

  • イメージ: 本棚に同じサイズの本が並んでいて、左から0番・1番…と番号が振られている感じ。
  • 特徴: 中身はすべて同じ型(全部int、全部Stringなど)。番号(インデックス)は必ず0から始まる。
  • 使いどころ: テストの点数一覧、ユーザー名のリスト、月ごとの売上など「同じ種類が複数ある」もの。

配列の作り方(宣言と作成)

  • 宣言: どんな型の配列かを決める
    例: intの配列を使いたいとき
int[] scores;
Java
  • 作成: 何個分の箱(要素)を用意するか決める
scores = new int[5]; // 5個分のintを入れられる
Java
  • 一行でまとめる書き方:
int[] scores = new int[5];
Java

例題1:3人分の年齢を保存して表示する

int[] ages = new int[3];  // 3つの箱
ages[0] = 18;             // 0番目の箱に18
ages[1] = 21;             // 1番目の箱に21
ages[2] = 20;             // 2番目の箱に20

System.out.println(ages[0]); // 18
System.out.println(ages[1]); // 21
System.out.println(ages[2]); // 20
Java

要素番号(インデックス)は0から

  • 基本: 一番目は0、二番目は1、三番目は2…と数える。
  • 注意: 用意した数より大きい番号は使えない(エラーの原因)。

例題2:インデックスの範囲を確認する

int[] nums = new int[2]; // 要素は0番と1番の2つ
nums[0] = 10;
nums[1] = 20;
// nums[2] = 30; // ← これはエラー(範囲外)
Java

まとめて処理するならfor文が便利

  • 配列とfor文の相性: 「全要素に同じことをしたい」時に最強。
  • 配列の長さ: 配列名.length で要素数が分かる。

例題3:全要素を順番に表示する

int[] scores = new int[5];
scores[0] = 70;
scores[1] = 85;
scores[2] = 90;
scores[3] = 60;
scores[4] = 100;

for (int i = 0; i < scores.length; i++) {
    System.out.println(scores[i]);
}
Java

例題4:合計と平均を求める

int[] scores = {70, 85, 90, 60, 100}; // こんな初期化もできる
int sum = 0;

for (int i = 0; i < scores.length; i++) {
    sum += scores[i];
}

double avg = (double) sum / scores.length;
System.out.println("合計: " + sum);
System.out.println("平均: " + avg);
Java

作りながら中身を入れる「初期化」

  • 波括弧で並べる: 宣言と同時に値を入れられる
String[] names = {"Alice", "Bob", "Charlie"};
Java
  • あとから作る場合: new が必要
String[] names;
names = new String[]{"Alice", "Bob", "Charlie"};
Java

配列は「参照型」

  • ポイント: 変数には配列そのものではなく「配列の場所の情報(参照)」が入っている。
  • 結果: 別の変数に代入すると、同じ配列を指すことになる。

例題5:参照の共有を体感する

int[] data = {1, 2, 3};
int[] other = data;   // 同じ配列を指す

other[0] = 99;        // otherから変更
System.out.println(data[0]); // 99 と表示される(dataも変わる)
Java

よくあるつまずきポイント

  • 範囲外アクセス:
    i が 0 <= i < array.length を満たしているか常に意識する。
  • 未初期化の要素:
    newしただけのint配列は全部0、booleanはfalse、参照型はnullが入っている。
  • 型の不一致:
    int配列に小数(double)を直接入れられない。型を合わせるかキャストが必要。

練習問題

  • 問題1: 5人分の身長(int)を配列に入れて、最大値を表示する
// ヒント:
// 1) int[] heights = { ... };
// 2) max を最初の要素で初期化
// 3) forで回して、より大きければ更新
Java
  • 問題2: 4科目の点数(int)から合格判定
    合格ライン70点。全科目が70以上なら「合格」、1つでも未満があれば「不合格」。
// ヒント:
// 1) boolean passed = true;
// 2) forで各点をチェック、70未満なら passed = false;
// 3) 最後に passed を見て表示
Java
  • 問題3: 文字列配列から特定の名前を探す
    名前が見つかったらインデックスを表示、なければ「見つかりません」。
// ヒント:
// 1) forで全要素を探索
// 2) equalsで文字列比較: names[i].equals(target)
Java

次のステップ

  • 拡張for文: for (int x : array) { ... } でシンプルに書ける(インデックスが不要なときに便利)。
  • 多次元配列: 行列のように「配列の中に配列」を持たせることもできる(例: int[][] grid)。
  • 配列の限界: 要素数を後から増やせない。増減が必要なら ArrayList を学ぶとよい。

配列は「同じ型をまとめる道具」。まずは「宣言 → 作成 → 値を入れる → 取り出す → まとめて処理」の流れを手で書いて動かしてみてください。

タイトルとURLをコピーしました