【Java】ArrayIndexOutOfBoundsExceptionとは

プログラミングにおいて、様々なエラーがあります。

本記事では、Javaで発生する「ArrayIndexOutOfBoundsException」についてエラーの意味と解決方法を紹介します。

原因

ArrayIndexOutOfBoundsExceptionを日本語訳すると配列インデックスの範囲外の例外となります。

用語の説明
  • 例外とは、プログラム上で発生した予期しないエラーです。
  • インデックスとは、配列の添字のことです。
    int[] array = new int[5]; array[0] = 1;
    上のコードは、int型の配列arrayの0番目に1を代入していますが、ここの0番目のことを指します。
    要するに配列の位置(場所)のことです。

つまり、存在しない配列のインデックスを操作しようとするときにおこるエラーになります。

具体例

public class Main{
    public static void main(String[] args){
        String[] name = new String[5];
        name[5] = "tanaka"; 
    }
}

3行目の String [] name = new String [ 5 ]; で、文字列型の配列nameをサイズ5で宣言しています。

4行目の name[ 5 ] = “tanaka” ; で、5番目の要素に”tanaka”を代入しようとしています。

しかし、インデックスは0からはじまるため、5番目の要素は、インデックスで4となります。

したがって、4行目の name[ 5 ] = “tanaka” ;は、6番目の要素に”tanaka”を代入しようとしていることになります。

3行目の String [] name = new String [ 5 ]; で、5つの要素の箱しか用意していないため、
6番目のインデックスは、範囲外(OutOfBounds)になります。

解決方法

配列のインデックスを確認し、宣言したサイズに収まるように指定します。

public class Main{
    public static void main(String[] args){
        String[] name = new String[5];
        name[4] = "tanaka"; //0~4まで可
    }
}