From d952dbc61b1bffebffab11fb1307514fde8afba0 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 1 Nov 2021 20:00:46 +0000 Subject: [PATCH] Added ListUtils#listToFrequencyMap --- .../java/com/willfp/eco/util/ListUtils.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/eco-api/src/main/java/com/willfp/eco/util/ListUtils.java b/eco-api/src/main/java/com/willfp/eco/util/ListUtils.java index 22936f29..5fa91891 100644 --- a/eco-api/src/main/java/com/willfp/eco/util/ListUtils.java +++ b/eco-api/src/main/java/com/willfp/eco/util/ListUtils.java @@ -5,7 +5,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Utilities / API methods for lists. @@ -34,4 +36,25 @@ public class ListUtils { return list; } + + /** + * Convert a list potentially containing duplicates to a map where the value is the frequency of the key. + * + * @param list The list. + * @param The type parameter of the list. + * @return The frequency map. + */ + @NotNull + private static Map listToFrequencyMap(@NotNull final List list) { + Map frequencyMap = new HashMap<>(); + for (T object : list) { + if (frequencyMap.containsKey(object)) { + frequencyMap.put(object, frequencyMap.get(object) + 1); + } else { + frequencyMap.put(object, 1); + } + } + + return frequencyMap; + } }