-4

スレッド「メイン」の例外 java.lang.IndexOutOfBoundsException: インデックス: 0、サイズ: java.util.ArrayList.rangeCheck(ArrayList.java:604) で 0

arraylist.java の行で

private void rangeCheck(int index) {
    if (index >= size)
        throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}

列をなして

List lstpp = getResult(pp) ;
    System.out.println("=====Persegi Panjang====");
    System.out.println("luas = "+((Integer)lstpp.get(0)));

助けてください

4

7 に答える 7

6

空の配列から要素を取得したい。そのためSize: 0、例外から

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

したがってlstpp.get(0)、配列を埋めるまではできません。

于 2013-09-16T08:48:48.083 に答える
4

lstpp空です。空のリストの最初の要素にはアクセスできません。

一般に、かどうかを確認できますsize > index

あなたの場合、lstpp空かどうかを確認する必要があります。(使用できます!lstpp.isEmpty()

于 2013-09-16T08:45:54.103 に答える
2

リストに要素がないため、最初の要素にアクセスできません。

于 2013-09-16T08:46:20.313 に答える
2
for ( int i=0 ; i<=list.size() ; i++){
....}

この for loop を実行することにより、ループはスローされた例外をIndexOutOfBoundException原因として実行されます。リストサイズが 10 であると仮定すると、インデックス i が 10 になる場合、つまり i=10 の場合、例外がスローindex=sizei=sizeれます。 index from 0,1,2...etc Javaが同意する表現は ですindex < size。したがって、そのような例外の解決策は、ループ内のステートメントを次のようにすることですi<list.size()

for ( int i=0 ; i<list.size() ; i++){
...}
于 2016-07-07T10:04:00.670 に答える
0

lstpp.get(0)空の配列の最初の要素にアクセスしようとしています。配列に要素を追加し、要素!lstpp.isEmpty()にアクセスする前に確認するだけです

于 2013-09-16T08:46:29.730 に答える
0

このエラーは、リストlstppが空 (インデックス 0 に何もない) ために発生します。したがって、getResult()関数にバグがあるか、空のリストが正常であり、このケースを処理する必要があります (前にリストのサイズをチェックするか、例外をキャッチします)。

于 2013-09-16T08:48:46.260 に答える