diff --git a/spring-core/src/main/java/org/springframework/util/CollectionUtils.java b/spring-core/src/main/java/org/springframework/util/CollectionUtils.java index 1eadaa5680fa..5b2c7bfb9fae 100644 --- a/spring-core/src/main/java/org/springframework/util/CollectionUtils.java +++ b/spring-core/src/main/java/org/springframework/util/CollectionUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2021 the original author or authors. + * Copyright 2002-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -85,7 +85,8 @@ public static boolean isEmpty(@Nullable Map map) { * @see #newLinkedHashMap(int) */ public static HashMap newHashMap(int expectedSize) { - return new HashMap<>((int) (expectedSize / DEFAULT_LOAD_FACTOR), DEFAULT_LOAD_FACTOR); + int capacity = (int) Math.ceil(expectedSize / (double) DEFAULT_LOAD_FACTOR); + return new HashMap<>(capacity, DEFAULT_LOAD_FACTOR); } /** @@ -102,7 +103,8 @@ public static HashMap newHashMap(int expectedSize) { * @see #newHashMap(int) */ public static LinkedHashMap newLinkedHashMap(int expectedSize) { - return new LinkedHashMap<>((int) (expectedSize / DEFAULT_LOAD_FACTOR), DEFAULT_LOAD_FACTOR); + int capacity = (int) Math.ceil(expectedSize / (double) DEFAULT_LOAD_FACTOR); + return new LinkedHashMap<>(capacity, DEFAULT_LOAD_FACTOR); } /**