Shortcuts on Collections to create Streams

Thiago Henrique Hupner thihup at gmail.com
Wed Mar 3 21:53:14 UTC 2021


They have added the Stream#toList in JDK 16:
https://download.java.net/java/early_access/jdk16/docs/api/java.base/java/util/stream/Stream.html#toList()


Em qua., 3 de mar. de 2021 às 18:45, Zs. <gzsombor at gmail.com> escreveu:

> Hi,
>
>  As Collection already has a default implementation for 'forEach', I'm
> wondering why there is no similar shortcuts for a couple of repeating
> patterns around the Collection <--> Stream transitions?
> For example, if you could write:
>  collection.map(...) instead of collection.stream().map(...);
>  collection.filter(...) instead of collection.stream().filter(...);
> Or for the other direction:
>  stream.toList() instead of stream.collect(Collectors.toList())
>  stream.toSet() instead of stream.collect(Collectors.toSet())
>
> They are heavily used even in OpenJDK's source code:
>
>    -
>
> https://github.com/search?q=stream%5C%28%5C%29.filter%28+repo%3Aopenjdk%2Fjdk+language%3AJava&type=Code&ref=advsearch&l=Java&l=
>    -  380 results, unfortunately with false matches from javax.xml.stream.
>       StreamFilter
>    -
>
> https://github.com/search?q=stream%5C%28%5C%29.map%5C%28%5C%29+repo%3Aopenjdk%2Fjdk&type=Code
>       - 559 results, unfortunately with false matches from comments or
>       streams().mapToInt or not related code
>
>
>    -
>
> https://github.com/openjdk/jdk/search?q=collect%28Collectors.toList%28%29%29
>    -  367 results
>    -
>
> https://github.com/openjdk/jdk/search?q=collect%28Collectors.toSet%28%29%29
>    -  117 results
>
> Any particular reason, why adding these - 4 or more - default method to a
> collection deemed unnecessary or harmful? Unfortunately I haven't been able
> to find the answers for this question using internet searches.
>
> Thanks,
>  Zsombor
>


More information about the jdk-dev mailing list