为什么java.util.Collection.remove()返回一个布尔值?

是否有任何现实世界的例子,当调用者可能使用从Collection.remove()返回的值时?

我很高兴该方法返回一个布尔值,但是当结果对调用者有用时,我很难想到一个案例.

最佳答案
正如javadoc所说

Removes a single instance of the specified element from this collection, if it is present (optional operation).

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

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

while(col.remove(anObject));

请记住,javadoc还说:

More formally, removes an element e such that (o==null ? e==null : o.equals(e))

因此,如果您获得可能包含空值的集合,并且您只想处理“真实”对象,则可以使此代码更容易

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

首先删除空值:

while(col.remove(null));

for(Object obj : col) {
    doSomethingWithObject(obj); 
}

转载注明原文:为什么java.util.Collection.remove()返回一个布尔值? - 代码日志