2

arraylistから値を取得しようとすると、次のエラーが発生しました。サンプルコードは以下のとおりです。testは配列リストの名前です。

文字列s=test.get(1);

04-05 11:51:42.525: E/AndroidRuntime(901): java.lang.IndexOutOfBoundsException: Invalid location 1, size is 1
04-05 11:51:42.525: E/AndroidRuntime(901):  at java.util.ArrayList.get(ArrayList.java:341)

)04-05 11:51:42.525:E / AndroidRuntime(901):android.app.Activity.onMenuItemSelected(Activity.java:2170)

4

5 に答える 5

2

文字列配列のサイズは 1 です。つまり、文字列は 1 つしかなく、0 です。文字列配列から何を取得しようとしていますか? あなたが望むコードは

if(test.size() >=1)
   String s = test.get(0);//magical numbers are evil by the way the good book told me so

これは非常に悪い習慣であることに注意してください。その配列の 1 番目または 2 番目の文字列が必要な理由がわかるように、もっと多くのコードを投稿する必要があります。

于 2012-04-05T06:28:38.760 に答える
2

Invalid location 1, size is 1ArrayList が index[0] で始まることを意味します。使用get(1)すると、2番目のエントリが表示されます。

于 2012-04-05T06:29:55.423 に答える
2

test.size()あなたのケースでその1をチェックしてください。String s = test.get(0);

必ず最初にsize of your listまたはを確認してくださいarray's length。そして、それに従って値を取得します。この場合、すべての配列とリストは常に 0 から始まることに注意してください。最後の要素は常にリストの size() - 1 です。

于 2012-04-05T06:30:15.123 に答える
0

まず、配列リストのサイズは、test.size()を使用して取得できるサイズです。

配列のインデックス作成はゼロから始まることがわかっているので、test.get(0);をフェッチできます。arraylistの最初の要素を取得し、test.get(1)である次の要素をフェッチしようとすると、IndexOutBound例外が発生します。

于 2012-04-05T06:39:02.207 に答える
0

あなたのArrayListのサイズは1なので、その位置は0になります

このコードを試してください

String s= test.get(0);
于 2012-04-05T06:28:49.403 に答える