ArrayListオブジェクトにおけるremove()メソッドの使用

938 ワード

今日ArrayListを使用すると、test変数が初期化されます.
ArrayList test = new ArrayList(3);
test.add(1);
test.add(2);
test.add(3);

そのうちの3を削除したい場合:test.remove(3);異常を投げ出しました
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.remove(Unknown Source)
    at Game.main(Game.java:32)

その中のremoveメソッドに問題があることに気づき、removeメソッドの具体的な説明を見に行きました.
  • remove(int index) : Integer - ArrayList
  • remove(Object o) : boolean - ArrayList

  • 一般的にremoveカッコに整数を入力すると、インデックスとして認識されます.すなわち、3を入力すると、下付き3の要素を削除すると認識されますが、testにはこの下付き要素は存在しません.だから、異常が投げ出されます.だから、3という要素を削除するときは、removeはこのように書くべきです.test.remove((Integer)3);あるいはindexOf法により要素3のインデックス値を取得して削除する:test.remove(test.indexOf(3));