Add MoreCollectors.to*WithExpectedSize helpers #173
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP Draft for comments
Some questions came up about providing
Stream
collectors that avoid some of the growth & reallocation overhead of JDK standard collectors such asCollectors.toList()
and where libraries are targeting JDK 11 so cannot useStream::toList()
added in JDK 16.This typically only matters in more allocation sensitive code in which case use of Guava
Collections2.transform
,Lists.transform
,Maps.transformValues
may be better solutions to avoid the intermediate collection copy; however, there are some cases where one must make a copy (e.g. if the elements being transformed are only valid inside a transaction), so providing these mechanisms may be beneficial.Questions:
filter
, these likely over-allocate in what one might assume are performance/allocation sensitive paths.Stream
implementation?MoreCollectors
as that conflicts with simple type name forcom.google.common.collect.MoreCollectors
?