
com.github.bingoohuang.utils.lang.Mapp Maven / Gradle / Ivy
package com.github.bingoohuang.utils.lang;
import com.google.common.collect.Maps;
import lombok.SneakyThrows;
import lombok.val;
import org.apache.commons.lang3.StringUtils;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.github.bingoohuang.utils.codec.Json.json;
import static com.github.bingoohuang.utils.codec.Json.unJson;
public class Mapp {
/**
* 将形如{"k1:v2","k2:v2"}的字符串数组,转换为Map.
*
* @param sep 分隔符
* @param keyValuePairs 键值对
* @return Map
*/
public static Map createMap(String sep, String... keyValuePairs) {
Map map = Maps.newHashMap();
for (val keyValue : keyValuePairs) {
int sepPos = keyValue.indexOf(sep);
if (sepPos < 0) continue;
val k = StringUtils.trim(keyValue.substring(0, sepPos));
val v = StringUtils.trim(keyValue.substring(sepPos + sep.length()));
map.put(k, v);
}
return map;
}
/**
* 从map中按照key列表提取第一个非null的值。
*
* @param map Map
* @param keys key列表
* @param the type of keys maintained by this map
* @param the type of mapped values
* @return 第一个非null的值。如果没有找到,返回null。
*/
public static V firstNonNull(Map map, String... keys) {
for (val key : keys) {
V v = map.get(key);
if (v != null) return v;
}
return null;
}
public static Map of(K k1, V v1) {
Map map = newHashMap();
map.put(k1, v1);
return map;
}
public static Map of(K k1, V v1, K k2, V v2) {
Map map = of(k1, v1);
map.put(k2, v2);
return map;
}
public static Map of(K k1, V v1, K k2, V v2, K k3, V v3) {
Map map = of(k1, v1, k2, v2);
map.put(k3, v3);
return map;
}
public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
Map map = of(k1, v1, k2, v2, k3, v3);
map.put(k4, v4);
return map;
}
public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
Map map = of(k1, v1, k2, v2, k3, v3, k4, v4);
map.put(k5, v5);
return map;
}
public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6) {
Map map = of(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5);
map.put(k6, v6);
return map;
}
public static Map of(T... keyAndValues) {
Map map = newHashMap();
for (int i = 0; i < keyAndValues.length; i += 2) {
T key = keyAndValues[i];
T value = i + 1 < keyAndValues.length ? keyAndValues[i + 1] : null;
map.put(key, value);
}
return map;
}
public static Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy