使用一个对象设置从集合中删除元素的优点

时间:2013-02-07 12:19:54

标签: java collections

我在official java docs中找到了下一个代码:

collection.removeAll(Collections.singleton(element));

我无法弄清楚这种方法的优点。为什么不通常删除元素?

collection.remove(element);

谢谢!

4 个答案:

答案 0 :(得分:8)

前者删除集合中所有出现的元素,后者仅删除第一次出现。

答案 1 :(得分:5)

度Acc。到文档:

  

考虑以下习惯用法从Collection,c

中删除指定元素e的所有实例
collection.removeAll(Collections.singleton(element));

while collection.remove(element);从此集合中删除指定元素的单个实例

因此,要删除所有实例,您必须使用后一种方法的循环结构。而第一个就是一线工作。

答案 2 :(得分:3)

来自API

  

删除(对象o)
  从此集合中移除指定元素的单个实例(如果存在)

  

removeAll(Collection c)
  删除同样包含在指定集合中的所有此集合的元素

因此,如果您的集合中有多个要删除的元素,则必须多次执行collection.remove(element),但只执行一次removeAll。由于removeAll将一个集合作为参数,Collection.singleton可以为您提供一种只用一个参数创建集合的便捷方法。

答案 3 :(得分:0)

测试时(单元测试)。 Collections.singleton是将您的主题变为集合的单行方式。 另一种选择是两条线而不是繁重的。