Java | 配列の初期化

Java Java
スポンサーリンク

Javaの配列の初期化を、初心者向けにかみ砕いて解説

「配列」は同じ種類のデータ(同じ型)を、順番に並べて入れておくための道具です。イメージは“同じ形の箱が横に並んだ棚”。箱の位置は左から0番、1番、2番…と番号が振られます(これが「インデックス」)。


配列の超基本

  • 配列の役割: 同じ型のデータを、まとめて扱うための並び。
  • インデックスは0から: 最初の箱は0番目、次は1番目…と数える。
  • 型はそろえる: int配列なら全部int、String配列なら全部String。
// int型の箱を3個並べる棚(配列)を作る
int[] nums = new int[3]; // 箱は3つ:nums[0], nums[1], nums[2]

// 値を入れる(代入)
nums[0] = 10;
nums[1] = 20;
nums[2] = 30;

// 取り出して使う
System.out.println(nums[1]); // 20が表示される
Java

初期化の2つの方法

宣言と同時に中身を入れる(短くて便利)

  • 特徴: 値を並べて書くだけで完成。サイズは自動で決まる。
int[] scores = { 80, 90, 75 }; // 要素数は3(0〜2)
String[] fruits = { "Apple", "Orange", "Melon" };
Java

まず箱の数だけ決めて、あとから入れる(柔軟)

  • 特徴: 先に「何個必要か」を決めて作り、順に代入する。
double[] prices = new double[4]; // 4個ぶんの箱
prices[0] = 120.5;
prices[1] = 98.0;
prices[2] = 300.0;
prices[3] = 150.0;
Java

「作った瞬間に入る」初期値(規定値)

  • 数値型(int、long、doubleなど): 0(doubleやfloatは0.0)
  • boolean: false
  • 参照型(String、クラスなど): null(何も入っていない“空っぽ”の印)
int[] a = new int[3];       // {0, 0, 0}
boolean[] flags = new boolean[2]; // {false, false}
String[] names = new String[2];   // {null, null}

System.out.println(a[0]);       // 0
System.out.println(flags[1]);   // false
System.out.println(names[0]);   // null(文字ではなく「何もない」状態)
Java

よくある間違いとコツ

  • すでに作った配列に、{}で“まるごと代入”はできない
int[] nums = new int[3];
// nums = {1, 2, 3}; // これはエラー
nums = new int[]{1, 2, 3};   // 「新しく作り直す」形ならOK
Java
  • サイズ以上のインデックスは使えない
int[] data = new int[2]; // 0と1の2つだけ
// data[2] = 10; // 2は存在しない。エラーになる
Java
  • Stringのnullと””(空文字)は違う
    • null: 何も入っていない(箱が空)。操作するとエラーになりやすい“”: 長さ0の文字列(中身はあるけど空)
String[] s = new String[1]; // {null}
// s[0].length(); // nullに対して操作するとエラー
s[0] = "";       // 空文字を入れる
System.out.println(s[0].length()); // 0
Java

例題で理解する

例題1:合計と平均を出す

  • 目的: 配列の値をループで回して計算する練習。
int[] scores = { 70, 85, 90, 60 };
int sum = 0;

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

System.out.println("合計: " + sum);       // 合計: 305
System.out.println("平均: " + average);   // 平均: 76.25
Java
  • ポイント: 配列の「長さ」は scores.length。インデックスは 0 から length - 1

例題2:最小値と最大値を探す

  • 目的: 比較しながら更新するパターンを覚える。
int[] nums = { 4, 10, -3, 7, 7 };

int min = nums[0];
int max = nums[0];

for (int i = 1; i < nums.length; i++) {
    if (nums[i] < min) min = nums[i];
    if (nums[i] > max) max = nums[i];
}

System.out.println("最小: " + min); // -3
System.out.println("最大: " + max); // 10
Java

例題3:文字列配列を結合する

  • 目的: 参照型(String)の扱いに慣れる。
String[] words = { "Hello", "Java", "World" };
String sentence = "";

for (int i = 0; i < words.length; i++) {
    if (i > 0) {
        sentence += " "; // 単語の間にスペースを入れる
    }
    sentence += words[i];
}

System.out.println(sentence); // Hello Java World
Java

ミニ練習問題

  • 問題1: 5人分のテスト点を配列で受け取り、80点以上の人数を数えて表示するプログラムを書いてください。
    • ヒント: ループで if (score >= 80) を数える。
  • 問題2:double[] の価格配列から、税込10%の合計金額を出してください。
    • ヒント: 1つずつ price * 1.1 を足していく。
  • 問題3: 文字列配列の中に "Java" が何回あるか数えてください。
    • ヒント: if (words[i].equals("Java")) を使う(nullの可能性があるなら null チェックを先に)。

つまずいたらチェックすること

  • インデックスが0から始まっているか
  • lengthを使って正しい範囲でループしているか
  • 型がそろっているか(int配列に小数や文字列を入れていないか)
  • nullを操作していないか(Stringなら equals を呼ぶ前に null チェック)

まとめ

  • 配列は“同じ型の箱が並んだ棚”。インデックスは0から。
  • 初期化は「宣言と同時に中身を入れる」か「サイズだけ決めて後から入れる」。
  • 作成直後は型ごとの初期値が入る(数値は0、booleanはfalse、参照型はnull)。
  • 長さは 配列.length、範囲外アクセスと {} の再代入エラーに注意。
タイトルとURLをコピーしました