CSR :
|
|
Duplicate :
|
|
Relates :
|
JDK-8257870 :
|
A DESCRIPTION OF THE REQUEST : `stream.collect(Collectors.toList())` and `stream.collect(Collectors.toSet())` are two the most popular collectors used for Stream. It would be nice to simplify/encapsulate the call by something like `stream.toList()` and `stream.toSet()` (or `stream.collectToList()` and `stream.collectToSet()`) JUSTIFICATION : It makes the coding just easier, saves some time and place. If you research the most of Internet posts about java streams collecting, 90% will use these collectors, thus it would be nice to have some default implementation, without specifying a collector explicitly. Also, `Stream#toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper)` (and related) might be helpful. EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - Stream interface extended to have default toList(), toSet() and optionally toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper) methods ACTUAL - collector should be explicitly specified every time ---------- BEGIN SOURCE ---------- //IntStream.range(1, 1000).boxed().collect(Collectors.toList()) IntStream.range(1, 1000).boxed().toList() IntStream.range(1, 1000).boxed().collectToList() IntStream.range(1, 1000).boxed().toSet() IntStream.range(1, 1000).boxed().collectToSet() ---------- END SOURCE ----------
|