Avoid resizing of fixed-size HashSet/LinkedHashSet variants

Add helpers to CollectionUtils for building HashSets and LinkedHashSets
that can hold an expected number of elements without needing to
resize/rehash.

Closes gh-32291
This commit is contained in:
Patrick Strawderman
2024-02-18 14:05:31 -08:00
committed by Sam Brannen
parent 6383a0d7ca
commit e1a32d4ba9
47 changed files with 114 additions and 75 deletions

View File

@@ -18,7 +18,6 @@ package org.springframework.jdbc.core.metadata;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -215,7 +214,7 @@ public class TableMetaDataContext {
if (!declaredColumns.isEmpty()) {
return new ArrayList<>(declaredColumns);
}
Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length);
Set<String> keys = CollectionUtils.newLinkedHashSet(generatedKeyNames.length);
for (String key : generatedKeyNames) {
keys.add(key.toUpperCase());
}
@@ -296,7 +295,7 @@ public class TableMetaDataContext {
* @return the insert string to be used
*/
public String createInsertString(String... generatedKeyNames) {
Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length);
Set<String> keys = CollectionUtils.newLinkedHashSet(generatedKeyNames.length);
for (String key : generatedKeyNames) {
keys.add(key.toUpperCase());
}