summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/funcdata
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcdata')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalMap.java23
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/IFunctionalMap.java17
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