RFR: 8023339 : (xs) Rename Collection.removeIf(Predicate) to removeAll(Predicate)
Guy Steele
guy.steele at oracle.com
Thu Sep 5 10:31:57 PDT 2013
Let me point out that the "xxxIf" form of name for this idea (removing elements
of a list that satisfy a predicate, or otherwise operating on the elements of a list
that satisfy a predicate) has a history tracing back to the year 1979. That's more
than a third of a century.
--Guy
On Sep 5, 2013, at 9:18 AM, Matthew Adams <matthew at matthewadams.me> wrote:
> I know it's probably too late, but it occurred to me that
> "removeWhere(Predicate)" seems appropriate:
>
> coll.removeWhere(s -> s.size() > 3);
>
>
> On Thu, Sep 5, 2013 at 4:25 AM, Alan Bateman <Alan.Bateman at oracle.com>wrote:
>
>> On 04/09/2013 22:08, Mike Duigou wrote:
>>> Hello all;
>>>
>>> The naming of the Collection.removeIf(Predicate) method has always been
>> an uncertain choice. We've gone back and forth between naming it removeIf
>> and overloading the existing removeAll(Collection) with a
>> removeAll(Predicate). Now that all other library and language decisions
>> seem to be settled it seems reasonable to make a final decision on this
>> method naming.
>>>
>>> This patch proposes to use the removeAll(Predicate) overload. This
>> choice is made to increase the discoverability of the method and to "reuse"
>> the existing user understanding of the removeAll name. There is a minor
>> source incompatibility induced by overloading the removeAll name--if
>> explicit null is passed then a compiler cannot resolve which overload to
>> use. Since null is not a legal value for either overload this source
>> incompatibility is expected to only affect tests which check to see what
>> response implementations return for null. The ambiguity can be resolved by
>> providing a cast to either the Collection or Predicate types to select the
>> appropriate overload.
>>>
>>> http://cr.openjdk.java.net/~mduigou/JDK-8024291/0/webrev/
>>>
>> This looks okay to me too.
>>
>> -Alan.
>>
>>
>
>
> --
> mailto:matthew at matthewadams.me <matthew at matthewadams.me>
> skype:matthewadams12
> googletalk:matthew at matthewadams.me
> http://matthewadams.me
> http://www.linkedin.com/in/matthewadams
More information about the lambda-dev
mailing list