从集合中删除元素

时间:2015-02-05 17:02:19

标签: java collections

我想从其他集合中的多个集合中删除元素。是否有一个方法可以收集元素集合并删除所有元素。

Collection<String> coll1;
Collection<String> coll2;
Collection<String> coll3;
Collection<String> mainCollection;

mainCollection.removeAll(coll1);
mainCollection.removeAll(coll2);
mainCollection.removeAll(coll3);

我不喜欢单独在每个集合上调用removeAll。是否有一种方法可以做到这一点。

2 个答案:

答案 0 :(得分:0)

据我所知,没有一种方法可供选择。您必须在每个Collection上调用它才能清除它。 浏览以下链接以获取更多信息。 http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html

答案 1 :(得分:0)

没有内置方法,但您可以轻松编写一个。

Java 7:

<E> void removeAllOf(Collection<E> removeFrom, Collection<E>... toRemove) {
    for (Collection<E> remove : toRemove) {
        removeFrom.removeAll(remove);
    }
}

Java 8:

<E> void removeAllOf(Collection<E> removeFrom, Collection<E>... toRemove) {
    Arrays.stream(toRemove).forEach(removeFrom::removeAll);
}

然后,简单地说:

removeAllOf(mainCollection, coll1, coll2, coll3);