From e0d7b03820f799e88f24dd21e86fbb061a385169 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 14 Jun 2021 19:45:41 -0700 Subject: [PATCH] fix funny ProbabilityCollection bug --- .../api/util/collections/ProbabilityCollection.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java index 77ded4d59..8c8d152a3 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java +++ b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java @@ -49,10 +49,14 @@ public class ProbabilityCollection implements Collection { public ProbabilityCollection map(Function mapper, boolean carryNull) { ProbabilityCollection newCollection = new ProbabilityCollection<>(); - cont.forEach((o, count) -> { - if(o != null) newCollection.add(mapper.apply(o), count.get()); - else if(carryNull) newCollection.add(null, count.get()); - }); + newCollection.array = new Object[array.length]; + + Map cache = new HashMap<>(); + + for(int i = 0; i < array.length; i++) { + if(carryNull && array[i] == null) continue; + newCollection.array[i] = cache.computeIfAbsent((E) array[i], mapper); + } return newCollection; }