Avoid resizing of Maps created by CollectionUtils #29190
Closed
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.
Hi,
I noticed that smaller maps with a size of 1 and 2 will be resized if you put the respective number of elements in it. This PR aligns the initial capacity calculation with the one from the JDK and thus fixes the contract:
I didn't add a test because it would access internals of
(Linked)HashMap
which felt pretty ugly and would probably need the internals to be opened. But let me know if I should try adding some.I should note that this probably makes other cases a tiny bit slower, because the size is sometimes 1 higher than before. But then again. The contract is specific about the resizing not happening.
(A backport to 5.3 is as usual highly appreciated ;-) )
Cheers,
Christoph