Javaの配列インデックスとは?0始まり・更新・参照を初心者向けに解説

最終更新日

Schoo Java入門 初級 講座イメージ

本記事は、Schooの「Java入門 初級【2026年版】」第2回「変数・配列・入力(Scanner)」を学んだあとに、配列のインデックス・更新・参照を整理するためのステップアップ学習記事です。

ただし、Schooを受講していない方でも、Javaの基本を学び始めたばかりであれば読み進められる内容にしています。

Schoo コースページ:Java入門 初級【2026年版】

配列は同じ型の値をまとめる仕組み

配列は、同じ型の値を順番にまとめて扱うための仕組みです。名前の一覧、点数の一覧、曲名の一覧のように、同じ意味を持つ値が並ぶときに使います。

ファイル名: ArrayBasics.java

public class ArrayBasics {
    public static void main(String[] args) {
        String[] songs = new String[3];

        songs[0] = "Song A";
        songs[1] = "Song B";
        songs[2] = "Song C";

        System.out.println("1番目: " + songs[0]);
        System.out.println("3番目: " + songs[2]);
    }
}

実行結果

1番目: Song A
3番目: Song C

インデックスは0から始まる

3つの値が入る配列では、使えるインデックスは012です。人間の「1番目」とJavaの[0]がずれるため、最初は混乱しやすいところです。

1番目 -> songs[0]
2番目 -> songs[1]
3番目 -> songs[2]

存在しない番号を指定すると実行時エラーになる

要素数が3の配列でsongs[3]を指定すると、4番目を見に行くことになります。4番目は存在しないため、実行時にエラーになります。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

このエラーが出たら、配列の要素数と、指定しているインデックスを確認します。lengthを使うと要素数を確認できます。

ファイル名: ArrayUpdateExample.java

public class ArrayUpdateExample {
    public static void main(String[] args) {
        String[] songs = { "Song A", "Song B", "Song C" };

        System.out.println("更新前: " + songs[0]);
        songs[0] = "New Song";
        System.out.println("更新後: " + songs[0]);
        System.out.println("要素数: " + songs.length);
    }
}

実行結果

更新前: Song A
更新後: New Song
要素数: 3

配列は参照型として扱われる

配列変数には、値そのものではなく、配列が置かれている場所の情報が入っています。そのため、配列変数を別の変数に代入すると、同じ配列を共有する形になります。

ファイル名: ArrayReferenceExample.java

public class ArrayReferenceExample {
    public static void main(String[] args) {
        String[] a = { "A", "B", "C" };
        String[] b = a;

        b[0] = "Z";

        System.out.println(a[0]);
        System.out.println(b[0]);
    }
}

実行結果

Z
Z

abは別の変数ですが、同じ配列を見ています。どちらかから中身を変えると、もう片方から見ても変わって見えます。

自分で試す練習

  1. String[] names = {"Alice", "Bob", "Carol"};を作り、1番目と3番目を表示してください。
  2. 1番目の値を別の名前に更新して、更新前後を表示してください。
  3. names[3]を指定するとどうなるか、エラー文を確認してください。

確認問題

  1. 3要素の配列で使えるインデックスをすべて書いてください。
  2. songs.lengthで分かることを説明してください。
  3. 配列変数を別の変数に代入したとき、中身のコピーではなく何が共有されるか説明してください。

演習後の確認: こちらのページを使って、自分で考えた内容を見直せます。

あわせて読みたい関連記事

まとめ

配列は同じ型の値をまとめる参照型です。インデックスは0から始まり、存在しない番号を指定すると実行時エラーになります。更新、length、参照の共有まで確認すると、配列の動きが見えやすくなります。

シェアする