3

是否有任何真实世界的例子说明调用者何时可以使用从返回的值Collection.remove()

我很高兴该方法返回一个布尔值,但我很难想到结果对调用者有用的情况。

4

2 回答 2

6

Collection.remove()false当传递给它的对象在集合中找到时返回。

这对我来说听起来相当有用,特别是如果您希望该对象在那里 - 一旦被移除,就不可能确认它以前是。呼叫remove()是发现它不存在的最后机会。

于 2013-09-19T12:53:45.397 回答
4

正如javadoc所说

从此集合中移除指定元素的单个实例(如果存在)(可选操作)。

集合可能包含多个相等的对象,因为集合不一定是 Set。

因此,一个用例可能是删除等于 remove 参数的对象的所有实例。

while(col.remove(anObject));

请记住,javadoc 还说:

更正式地说,删除元素 e 使得 (o==null ? e==null : o.equals(e))

因此,如果您得到一个可能包含空值的集合,并且您只想处理“真实”对象,您可以简化此代码

for(Object obj : col) {
    if(obj != null){
        doSomethingWithObject(obj);
    }
}

通过首先删除null值:

while(col.remove(null));

for(Object obj : col) {
    doSomethingWithObject(obj); 
}
于 2013-09-19T12:59:29.763 回答