
one.xingyi.helpers.MapHelpers Maven / Gradle / Ivy
package one.xingyi.helpers;
import java.util.*;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Supplier;
public interface MapHelpers {
static Map map(Map map, BiFunction fn) {
Map result = new HashMap<>();
for (Map.Entry entry : map.entrySet())
result.put(entry.getKey(), fn.apply(entry.getKey(), entry.getValue()));
return result;
}
static String jsonPrint(String separator, Map map, BiFunction fn) {
StringBuilder sb = new StringBuilder();
sb.append("{\n");
List list = new ArrayList<>(map.keySet());
Collections.sort(list);
int maxLength = list.stream().mapToInt(String::length).max().orElse(0) + 2;
for (String key : list) {
if (sb.length() > 2) {sb.append(','); sb.append(separator);} ;
sb.append(" ");
sb.append(String.format("%-" + maxLength + "s", StringHelper.doubleQuote.apply(key)));
sb.append(":");
sb.append(fn.apply(key, map.get(key)));
}
sb.append("\n}");
return sb.toString();
}
static V getOrAdd(Map map, K key, Supplier fn) {
V result = map.get(key);
if (result == null) {
V value = fn.get();
map.put(key, value);
return value;
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy