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:
committed by
Sam Brannen
parent
6383a0d7ca
commit
e1a32d4ba9
@@ -52,6 +52,7 @@ import org.springframework.http.MediaTypeFactory;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.MimeType;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -303,7 +304,7 @@ public class MockServletContext implements ServletContext {
|
||||
if (ObjectUtils.isEmpty(fileList)) {
|
||||
return null;
|
||||
}
|
||||
Set<String> resourcePaths = new LinkedHashSet<>(fileList.length);
|
||||
Set<String> resourcePaths = CollectionUtils.newLinkedHashSet(fileList.length);
|
||||
for (String fileEntry : fileList) {
|
||||
String resultPath = actualPath + fileEntry;
|
||||
if (resource.createRelative(fileEntry).getFile().isDirectory()) {
|
||||
|
||||
@@ -20,7 +20,6 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -53,6 +52,7 @@ import org.springframework.test.context.TestExecutionListeners.MergeMode;
|
||||
import org.springframework.test.context.util.TestContextSpringFactoriesUtils;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
@@ -355,7 +355,7 @@ public abstract class AbstractTestContextBootstrapper implements TestContextBoot
|
||||
List<ContextConfigurationAttributes> configAttributes) {
|
||||
|
||||
List<ContextCustomizerFactory> factories = getContextCustomizerFactories(testClass);
|
||||
Set<ContextCustomizer> customizers = new LinkedHashSet<>(factories.size());
|
||||
Set<ContextCustomizer> customizers = CollectionUtils.newLinkedHashSet(factories.size());
|
||||
for (ContextCustomizerFactory factory : factories) {
|
||||
ContextCustomizer customizer = factory.createContextCustomizer(testClass, configAttributes);
|
||||
if (customizer != null) {
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.springframework.test.context.support;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Executable;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
@@ -33,6 +32,7 @@ import org.springframework.test.context.TestConstructor;
|
||||
import org.springframework.test.context.TestConstructor.AutowireMode;
|
||||
import org.springframework.test.context.TestContextAnnotationUtils;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
/**
|
||||
* Utility methods for working with {@link TestConstructor @TestConstructor}.
|
||||
@@ -49,7 +49,7 @@ public abstract class TestConstructorUtils {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(TestConstructorUtils.class);
|
||||
|
||||
private static final Set<Class<? extends Annotation>> autowiredAnnotationTypes = new LinkedHashSet<>(2);
|
||||
private static final Set<Class<? extends Annotation>> autowiredAnnotationTypes = CollectionUtils.newLinkedHashSet(2);
|
||||
|
||||
static {
|
||||
autowiredAnnotationTypes.add(Autowired.class);
|
||||
|
||||
Reference in New Issue
Block a user