From 25a24082dd04fd69e4fb69ffaa74ac7961a79c43 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 14 Dec 2023 14:28:45 +0100 Subject: [PATCH] Polishing. Use IdentityHashMap for parameter lookup. See #3000 --- .../mapping/model/KotlinInstantiationDelegate.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/mapping/model/KotlinInstantiationDelegate.java b/src/main/java/org/springframework/data/mapping/model/KotlinInstantiationDelegate.java index d7448f441..77e735355 100644 --- a/src/main/java/org/springframework/data/mapping/model/KotlinInstantiationDelegate.java +++ b/src/main/java/org/springframework/data/mapping/model/KotlinInstantiationDelegate.java @@ -21,10 +21,10 @@ import kotlin.reflect.jvm.ReflectJvmMapping; import java.lang.reflect.Constructor; import java.util.ArrayList; +import java.util.IdentityHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; -import java.util.stream.Collectors; import java.util.stream.IntStream; import org.springframework.data.mapping.InstanceCreatorMetadata; @@ -66,8 +66,12 @@ class KotlinInstantiationDelegate { this.constructor = kotlinConstructor; this.kParameters = kotlinConstructor.getParameters(); - this.indexByKParameter = IntStream.range(0, kParameters.size()).boxed() - .collect(Collectors.toMap(kParameters::get, Function.identity())); + this.indexByKParameter = new IdentityHashMap<>(); + + for (int i = 0; i < kParameters.size(); i++) { + indexByKParameter.put(kParameters.get(i), i); + } + this.constructorToInvoke = constructorToInvoke; this.hasDefaultConstructorMarker = hasDefaultConstructorMarker(constructorToInvoke.getParameters());