0

我有两个 ArrayList

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

这是一个,这是另一个:

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

如何比较两者并从第二个 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 回答