1

私はプロジェクトに取り組んでおり、このエラー "java.lang.ArrayIndexOutOfBoundsException: 2 >= 0" が発生しています。これに関連する問題があります。これが ArrayIndexOutOfBoundsException であることはわかっています:P しかし、このサンプル例を見て、

import java.awt.List;
import java.util.ArrayList;


public class Oube {
    public static void main(String[] args) {

         ArrayList<String> list = new ArrayList<String>();

         list.add("Hello");
         list.add("World");
         list.add("World");

         System.out.println(list.size());
         System.out.println(list.get(0));
         System.out.println(list.get(1));
         System.out.println(list.get(2));
         System.out.println(list.get(3));
         System.out.println(list.get(4));
         System.out.println(list.get(5));
         System.out.println(list.get(6));
    }
}

次のエラーが発生します。スレッド「メイン」で例外 java.lang.IndexOutOfBoundsException: インデックス: 3、サイズ: 3

ここでは、x<=y のようなものは見られません。

そして、私のコードでは、ArrayIndexOutOfBoundsException の後に 2>=0 エラーを取得しています。

4

4 に答える 4

2

リストに 3 つの項目を追加したため、サイズは3になりますが、インデックスはこのよう0,1,2になり、etc を取得したい場合list.get(3)、例外がスローされ、サイズは3で、最後の要素は位置2になります。コードが表示される場合

 System.out.println(list.get(3));
 System.out.println(list.get(4));
 System.out.println(list.get(5));
 System.out.println(list.get(6));

リストに存在しない要素にアクセスするため、存在しない配列項目にアクセスしようとすると、この例外がスローされます。

于 2013-07-25T06:31:16.570 に答える
1

次の形式でエラーが表示されていません

java.lang.IndexOutOfBoundsException: インデックス: 3、サイズ: 3

ここでは、x<=y のようなものは見られません。

Arraylist は動的コレクションであり、必要に応じて成長するためです。固定サイズの配列を扱うときに、前述の例外が発生します。

arraylist には目的のインデックスに要素がないため、これらのステートメントはすべて例外をスローします。

     System.out.println(list.get(3));
     System.out.println(list.get(4));
     System.out.println(list.get(5));
     System.out.println(list.get(6));
于 2013-07-25T06:30:19.757 に答える
0

すべての配列アクセスは実行時にチェックされます。ゼロ未満または配列の長さ以上のインデックスを使用しようとすると、ArrayIndexOutOfBoundsException がスローされます。

インデックスが範囲内にあることを確認してください[0...yourArray.length-1].

したがって、0,1,2にアクセスできます

于 2013-07-25T06:32:51.890 に答える