删除集合中的元素
问题描述:
我想从其他集合中的多个集合中删除元素。是否有一种方法需要收集元素集合并将其全部删除。删除集合中的元素
Collection<String> coll1;
Collection<String> coll2;
Collection<String> coll3;
Collection<String> mainCollection;
mainCollection.removeAll(coll1);
mainCollection.removeAll(coll2);
mainCollection.removeAll(coll3);
我不喜欢在每个集合上分别调用removeAll。有没有一种方法可以做到这一点。
答
据我所知,没有一种这样的方法。您必须在每个集合上调用它才能清除它。 通过以下链接浏览以获取更多信息。 http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html
答
没有内置方法,但您可以轻松编写一个方法。
的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);
没有,但你可以写一个。 – 2015-02-05 17:03:35
*“是否有一种方法需要收集元素的集合并将其全部删除?”*好吧,[有](http://docs.oracle.com/javase/8/docs/api/java /util/Collection.html#method.summary)? – 2015-02-05 17:04:10
这是一个非问题。将'Collection'添加到'Collection >'并循环使用每个元素来'removeAll'。 –
2015-02-05 17:04:31