public class ExtHashMap<V> extends HashMap<String, V> {
private static final long serialVersionUID = 1L;
public ExtHashMap() {
}
// 单个key,如url一个参数时凑合用下
public ExtHashMap(String key, V value) {
this.put(key, value);
}
// 为空时获取一个默认值
public V get(String key, V defaultValue) {
V value = super.get(key);
return DrinStringUtils.isNotNull(value) ? value : defaultValue;
}
// 转json
public String toJson() {
return JSONObject.toJSONString(this);
}
// get url
public String toGetParams() {
if(this.isEmpty()){
return "";
}
List<String> params=new ArrayList<>();
this.foreach((k,v)->{
if(isNotNull(k,v)){
params.add(k+"="+v);
}
});
return params.size()==0?"":("?"+StringUtils.join(params,"&"));
}
// 设置值
public void setValue(String key, Consumer<V> setValue) {
setValue(key, null, setValue);
}
// 设置值
public void setValue(String key, V defaultValue, Consumer<V> setValue) {
V v = this.get(key, defaultValue);
if (null != v) {
setValue.accept(v);
}
}
// 修改值的类型
public <E> ExtHashMap<String, E> changeValueType(Function<V, E> valueFun) {
ExtHashMap<String, E> targetMap = new ExtHashMap<>();
if (this.isEmpty()) {
return targetMap;
}
this.forEach((skey, svalue) -> {
if (isNotNull(svalue)) {
targetMap.put(skey, valueFun.apply(svalue));
}
});
return targetMap;
}
}
写的一个可以稍微省几行代码的Map
于 2022-02-21 15:27:34 首次发布