diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcdata')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java | 23 | ||||
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/funcdata/IFunctionalMap.java | 17 |
2 files changed, 40 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java index fc4c4de..b505ebd 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java @@ -3,6 +3,7 @@ package bjc.utils.funcdata; import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; +import java.util.function.Consumer; import java.util.function.Function; import bjc.utils.data.Pair; @@ -89,6 +90,18 @@ public class FunctionalMap<K, V> implements IFunctionalMap<K, V> { public int getSize() { return mapToTransform.getSize(); } + + @Override + public void forEachKey(Consumer<K> action) { + mapToTransform.forEachKey(action); + } + + @Override + public void forEachValue(Consumer<V2> action) { + mapToTransform.forEachValue((val) -> { + action.accept(transformer.apply(val)); + }); + } } private Map<K, V> wrappedMap; @@ -220,4 +233,14 @@ public class FunctionalMap<K, V> implements IFunctionalMap<K, V> { public int getSize() { return wrappedMap.size(); } + + @Override + public void forEachKey(Consumer<K> action) { + wrappedMap.keySet().forEach(action); + } + + @Override + public void forEachValue(Consumer<V> action) { + wrappedMap.values().forEach(action); + } }
\ No newline at end of file diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IFunctionalMap.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IFunctionalMap.java index 9bd62bc..e089850 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/IFunctionalMap.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/IFunctionalMap.java @@ -1,6 +1,7 @@ package bjc.utils.funcdata; import java.util.function.BiConsumer; +import java.util.function.Consumer; import java.util.function.Function; /** @@ -101,4 +102,20 @@ public interface IFunctionalMap<K, V> { * @return The number of entries in this map */ int getSize(); + + /** + * Perform an action for each key in the map + * + * @param action + * The action to perform on each key in the map + */ + void forEachKey(Consumer<K> action); + + /** + * Perform an action for each value in the map + * + * @param action + * The action to perform on each value in the map + */ + void forEachValue(Consumer<V> action); }
\ No newline at end of file |
