
io.zenwave360.generator.utils.Maps Maven / Gradle / Ivy
package io.zenwave360.generator.utils;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* Mutable version of {@link java.util.Map} static methods and other utilities.
*/
public interface Maps {
static Map of(K key, V value, Object... keyValues) {
Map map = new LinkedHashMap<>();
map.put(key, value);
if (keyValues != null) {
int i = 0;
while (i < keyValues.length) {
K k = (K) keyValues[i++];
V v = (V) keyValues[i++];
map.put(k, v);
}
}
return map;
}
static Map copy(Map source) {
return (Map) deepCopy((Object) source);
}
private static Object deepCopy(Object source) {
if (source instanceof Map) {
source = new HashMap<>((Map) source);
((HashMap) source).entrySet().forEach(e -> e.setValue(deepCopy(e.getValue())));
} else if (source instanceof List) {
source = ((List>) source).stream().map(e -> deepCopy(e));
}
return source;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy