Artur Biesiadowski abies at
Thu Jun 13 07:57:50 PDT 2013

On 13/06/2013 14:40, Ali Ebrahimi wrote:
> what about Iterable<Entry<K,V>>:
> public interface Map<K,V> extends Iterable<Entry<K,V>> {
>         default Iterator<Entry<K,V>> iterator(){...}
> .
> }
> with Iterable<Entry<K,V>> internal iteration is not the only alternative,
> because you can now
> for(Entry<K,V> e:map)
> if we move stream and parallelStream methods to Iterable we can utilize
> from stream framework:
> e -> e.getKey().contains("somePattern")).map(e ->
> e.getValue())....

Some map implementations (fast ones mostly...) don't use Entry 
internally, so they have either to create a new one on each .next() or 
break a contract a bit and reuse same one over and over, hoping nobody 
will cache them (and that they are not used in parallel environment like 
your example above).

I don't suppose there is a way to do,v -> e.contains("somePattern")).map(k,v -> v)


Artur Biesiadowski

More information about the lambda-dev mailing list