From 89839030a5531c2071ce94a18ffd422f3836bbd0 Mon Sep 17 00:00:00 2001 From: Patrick Strawderman Date: Fri, 24 Oct 2025 15:20:42 -0500 Subject: [PATCH] Optimize GraphqlTypeComparators - Return singleton Comparator from byNameAsc - Use ImmutableList.sortedCopyOf to avoid extra List allocation in sortTypes --- .../java/graphql/schema/GraphqlTypeComparators.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/graphql/schema/GraphqlTypeComparators.java b/src/main/java/graphql/schema/GraphqlTypeComparators.java index 98d4fb0ce4..16eb006388 100644 --- a/src/main/java/graphql/schema/GraphqlTypeComparators.java +++ b/src/main/java/graphql/schema/GraphqlTypeComparators.java @@ -3,7 +3,6 @@ import com.google.common.collect.ImmutableList; import graphql.Internal; -import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.List; @@ -11,6 +10,10 @@ @Internal public class GraphqlTypeComparators { + private static final Comparator BY_NAME_ASCENDING = + Comparator.comparing(graphQLSchemaElement -> + ((GraphQLNamedSchemaElement) graphQLSchemaElement).getName()); + /** * This sorts the list of {@link graphql.schema.GraphQLType} objects (by name) and allocates a new sorted * list back. @@ -22,9 +25,7 @@ public class GraphqlTypeComparators { * @return a new allocated list of sorted things */ public static List sortTypes(Comparator comparator, Collection types) { - List sorted = new ArrayList<>(types); - sorted.sort(comparator); - return ImmutableList.copyOf(sorted); + return ImmutableList.sortedCopyOf(comparator, types); } /** @@ -42,7 +43,7 @@ public static Comparator asIsOrder() { * @return a comparator that compares {@link graphql.schema.GraphQLType} objects by ascending name */ public static Comparator byNameAsc() { - return Comparator.comparing(graphQLSchemaElement -> ((GraphQLNamedSchemaElement) graphQLSchemaElement).getName()); + return BY_NAME_ASCENDING; } }