From 78e0b7036708f8c9cfd4085122cf914eddc8c92a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 17 Apr 2020 21:37:28 +0200 Subject: [PATCH] Improve grouping sort allocation Pre-allocating the result list saves us the common case when the input is actually empty. Change-Id: I237a75db38e8e0c160b204875bc5824433e9c3dc Signed-off-by: Robert Varga --- .../yang/types/GroupingDefinitionDependencySort.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java index c7aa607bb5..770734dcb3 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java @@ -51,9 +51,8 @@ public class GroupingDefinitionDependencySort { throw new IllegalArgumentException("Set of Type Definitions cannot be NULL!"); } - final List resultGroupingDefinitions = new ArrayList<>(); - final Set unsorted = groupingDefinitionsToNodes(groupingDefinitions); - final List sortedNodes = TopologicalSort.sort(unsorted); + final List sortedNodes = TopologicalSort.sort(groupingDefinitionsToNodes(groupingDefinitions)); + final List resultGroupingDefinitions = new ArrayList<>(sortedNodes.size()); for (Node node : sortedNodes) { NodeWrappedType nodeWrappedType = (NodeWrappedType) node; resultGroupingDefinitions.add((GroupingDefinition) nodeWrappedType.getWrappedType()); @@ -68,7 +67,7 @@ public class GroupingDefinitionDependencySort { * For every uses node is found its wrapping node (next as nodeTo). This dependency relationship between * nodeFrom and all found nodesTo is modeled with creating of one edge from nodeFrom to nodeTo. * - * @param groupingDefinitions set of goruping definition which will be wrapped to nodes + * @param groupingDefinitions set of grouping definition which will be wrapped to nodes * @return set of nodes where every one contains wrapped grouping definition */ private Set groupingDefinitionsToNodes(final Collection groupingDefinitions) { -- 2.36.6