Design for collections upgrades
Brian Goetz
brian.goetz at oracle.com
Tue Mar 8 13:24:22 PST 2011
>> Further, I think the choice of eager/lazy is a reasonable one to give
>> the programmer. Programmers who do not need the features offered by
>> laziness shouldn't need to learn how laziness works just to use the new
>> collection operations.
>
> I don't see the need of having a eager filter().
Java programs have lots of code that basically looks like this:
ArrayList<T> filtered = new ArrayList<T>();
for (T t : otherList)
if (predicate(t))
filtered.add(t);
This can be replaced by the one liner:
ArrayList<T> filtered = otherList.filter(predicate);
Not only is it shorter, it is clearer, less error-prone, and does not
force the programmer to use side effects to do the computation.
More information about the lambda-dev
mailing list