0

私は2つのArrayListsを持っています

ArrayList<Integer> values = new ArrayList<Integer>();
values.add(9);

それは1つです、ここにもう1つあります:

ArrayList<Integer> values2 = new ArrayList<Integer>();
for(int j = 1; j < 10; j++){
        values2.add(j);
    }

2 つを比較して、2 番目の ArrayList から 9 を削除するにはどうすればよいですか? foreach ステートメントを使用してみましたが、取得し続けました

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 9, Size: 1
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)

これは数時間頭を悩ませていました。あなたが提供できる助けに感謝します

4

1 に答える 1

8

あなたが使う

values2.removeAll(values);

Collectionインターフェイスの Javadoc から( http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html ) -

boolean removeAll(コレクション c)

指定されたコレクションにも含まれているこのコレクションの要素をすべて削除します (オプションの操作)。この呼び出しが戻った後、このコレクションには、指定されたコレクションと共通する要素は含まれません。

于 2013-10-30T02:50:28.117 に答える