我想从其他集合中的多个集合中删除元素。是否有一个方法可以收集元素集合并删除所有元素。
Collection<String> coll1;
Collection<String> coll2;
Collection<String> coll3;
Collection<String> mainCollection;
mainCollection.removeAll(coll1);
mainCollection.removeAll(coll2);
mainCollection.removeAll(coll3);
我不喜欢单独在每个集合上调用removeAll。是否有一种方法可以做到这一点。
答案 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);