Woah, that streaming abstraction looks really slick, especially given that it can be automatically parallelized.
The idea of doing a one-line parallel map-reduce that is
collection.stream().parallel().map(operation1).reduce(operation2);
is surprisingly cool imo. And the availability of streams across the collections framework allows that they can be used in routine programming.