diff --git a/li.strolch.utils/src/main/java/li/strolch/utils/collections/MapOfMaps.java b/li.strolch.utils/src/main/java/li/strolch/utils/collections/MapOfMaps.java index 890083b06..37606ea6e 100644 --- a/li.strolch.utils/src/main/java/li/strolch/utils/collections/MapOfMaps.java +++ b/li.strolch.utils/src/main/java/li/strolch/utils/collections/MapOfMaps.java @@ -19,6 +19,7 @@ import java.util.*; import java.util.Map.Entry; import java.util.function.BiConsumer; import java.util.function.Function; +import java.util.function.Supplier; import java.util.stream.Stream; /** @@ -228,6 +229,12 @@ public class MapOfMaps { return u; } + public V computeIfAbsent(T t, U u, Supplier mappingFunction) { + Objects.requireNonNull(mappingFunction); + Map uvMap = this.mapOfMaps.computeIfAbsent(t, k -> getMap()); + return uvMap.computeIfAbsent(u, k -> mappingFunction.get()); + } + public void forEach(BiConsumer> action) { Objects.requireNonNull(action); for (Map.Entry> entry : this.mapOfMaps.entrySet()) {