On Thu, 24 Mar 2022 12:10:28 GMT, XenoAmess <[email protected]> wrote:
>> 8186958: Need method to create pre-sized HashMap
>
> XenoAmess has updated the pull request incrementally with one additional
> commit since the last revision:
>
> delete a space.
src/java.base/share/classes/java/util/HashMap.java line 2549:
> 2547:
> 2548: /**
> 2549: * Calculate initial capacity for HashMap based classes, from
> expected size.
This method should say it is using a default load factor (0.75).
I'm not sure how often anyone creates a map with a non-default load factor
but that might suggest a more general API pattern either in the supporting
calculation
or the public factories.
src/java.base/share/classes/java/util/HashMap.java line 2556:
> 2554: */
> 2555: static int calculateHashMapCapacity(int expectedSize) {
> 2556: if (expectedSize >= 1610612736) {
It would be clearer with a comment on the constant or use the expression (the
compiler will evaluate it).
`Integer.MAX_VALUE / 4 * 3`.
There also might be a valid point to make about a fail-fast exception if the
requested capacity cannot be achieved. If defaulted to MAX_VALUE, the
application would start populating the map and then at some later point get an
exception when it cannot be resized to accommodate the n+1'th item.
src/java.base/share/classes/java/util/HashMap.java line 2565:
> 2563: * Creates a new, empty HashMap with an initial table size
> 2564: * accommodating the specified number of elements without the need
> 2565: * to dynamically resize.
The default load factor should be mentioned.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7928