return type of Collection.removeIf

Paul Sandoz paul.sandoz at oracle.com
Mon Apr 29 02:41:40 PDT 2013


On Apr 21, 2013, at 6:06 AM, Akhil Arora <akhil.arora at oracle.com> wrote:
> Collection.removeIf is currently specified to return a boolean which is 
> true if any elements were removed. IMHO it would be more useful to have 
> it return an int indicating the number of elements that were removed.
> 

I suppose it saves one from doing:

int sizeBefore = c.size();
if (c.removeIf(...)) {
  int removed = sizeBefore -  c.size();

  ...
}

If one can do:

int removed = c.removeIf(...);
if (removed > 0) {

  ...
}

But i think it may be best to stick with the existing semantics of existing bulk operations such as:

    boolean removeAll(Collection<?> c);

     * @return <tt>true</tt> if this collection changed as a result of the
     *         call

and stick with the same JavaDoc as above for removeIf.

Paul.



More information about the lambda-dev mailing list