我在官方 java 文档中找到了下一个代码:
collection.removeAll(Collections.singleton(element));
我无法弄清楚这种方法的优点。为什么不删除通常的元素?
collection.remove(element);
谢谢!
我在官方 java 文档中找到了下一个代码:
collection.removeAll(Collections.singleton(element));
我无法弄清楚这种方法的优点。为什么不删除通常的元素?
collection.remove(element);
谢谢!
前者删除集合中所有出现的元素,后者仅删除第一次出现的元素。
会计。到文档:
考虑以下习惯用法以从集合 c 中删除指定元素 e 的所有实例
collection.removeAll(Collections.singleton(element));
whilecollection.remove(element);
从此集合中删除指定元素的单个实例
因此,要删除所有实例,您必须使用后一种方法的循环构造。而第一个它只是一个线工作。
从API
remove(Object o)
从此集合中移除指定元素的单个实例(如果存在)
和:
removeAll(Collection c)
删除该集合的所有元素,这些元素也包含在指定集合中
因此,如果您的集合中多次出现您要删除的元素,则必须执行 collection.remove(element) 多次,但 removeAll 只执行一次。由于 removeAll 将集合作为参数,Collection.singleton 可以为您提供一种方便的方法来创建只有一个参数的集合。
测试时(单元测试)。Collections.singleton
是一种将您的主题变成集合的单行方式。另一种方法是两条线,并不繁琐。