@@ -181,7 +181,7 @@ public static <E> Collection<E> createCollection(Class<?> collectionType, int ca
181
181
@ SuppressWarnings ("unchecked" )
182
182
public static <E > Collection <E > createCollection (Class <?> collectionType , @ Nullable Class <?> elementType , int capacity ) {
183
183
Assert .notNull (collectionType , "Collection type must not be null" );
184
- if (LinkedHashSet .class == collectionType || HashSet . class == collectionType ||
184
+ if (LinkedHashSet .class == collectionType ||
185
185
Set .class == collectionType || Collection .class == collectionType ||
186
186
collectionType .getName ().equals ("java.util.SequencedSet" ) ||
187
187
collectionType .getName ().equals ("java.util.SequencedCollection" )) {
@@ -201,6 +201,9 @@ else if (EnumSet.class.isAssignableFrom(collectionType)) {
201
201
Assert .notNull (elementType , "Cannot create EnumSet for unknown element type" );
202
202
return EnumSet .noneOf (asEnumType (elementType ));
203
203
}
204
+ else if (HashSet .class == collectionType ) {
205
+ return new HashSet <>(capacity );
206
+ }
204
207
else {
205
208
if (collectionType .isInterface () || !Collection .class .isAssignableFrom (collectionType )) {
206
209
throw new IllegalArgumentException ("Unsupported Collection type: " + collectionType .getName ());
@@ -302,7 +305,7 @@ public static <K, V> Map<K, V> createMap(Class<?> mapType, int capacity) {
302
305
@ SuppressWarnings ({"rawtypes" , "unchecked" })
303
306
public static <K , V > Map <K , V > createMap (Class <?> mapType , @ Nullable Class <?> keyType , int capacity ) {
304
307
Assert .notNull (mapType , "Map type must not be null" );
305
- if (LinkedHashMap .class == mapType || HashMap . class == mapType || Map .class == mapType ||
308
+ if (LinkedHashMap .class == mapType || Map .class == mapType ||
306
309
mapType .getName ().equals ("java.util.SequencedMap" )) {
307
310
return new LinkedHashMap <>(capacity );
308
311
}
@@ -316,6 +319,9 @@ else if (EnumMap.class == mapType) {
316
319
Assert .notNull (keyType , "Cannot create EnumMap for unknown key type" );
317
320
return new EnumMap (asEnumType (keyType ));
318
321
}
322
+ else if (HashMap .class == mapType ) {
323
+ return new HashMap <>(capacity );
324
+ }
319
325
else {
320
326
if (mapType .isInterface () || !Map .class .isAssignableFrom (mapType )) {
321
327
throw new IllegalArgumentException ("Unsupported Map type: " + mapType .getName ());
0 commit comments