Java 在HashMap中设置默认值
我试图找到一种方法,使HashMap返回一个默认值。例如,如果您查看以下内容,这将打印出“测试:=null”如果我想要请求一个默认值,那么每当我尝试获取hashMap中未设置的内容时,我都会获取该值,该怎么办Java 在HashMap中设置默认值,java,spring,spring-mvc,Java,Spring,Spring Mvc,我试图找到一种方法,使HashMap返回一个默认值。例如,如果您查看以下内容,这将打印出“测试:=null”如果我想要请求一个默认值,那么每当我尝试获取hashMap中未设置的内容时,我都会获取该值,该怎么办 Map<String, String> test = new HashMap<String, String>(); test.put("today","monday"); System.out.println("Test =:" + test.get("hello"
Map<String, String> test = new HashMap<String, String>();
test.put("today","monday");
System.out.println("Test =:" + test.get("hello") + "");
Map test=newhashmap();
测试。推杆(“今天”、“星期一”);
System.out.println(“Test=:”+Test.get(“hello”)+”;
尝试以下操作:
Map<String,String> map = new HashMap<String,String>(){
@Override
public String get(Object key) {
if(! containsKey(key))
return "DEFAULT";
return super.get(key);
}
};
System.out.println(map.get("someKey"));
Map Map=newhashmap(){
@凌驾
公共字符串获取(对象键){
如果(!containsKey(键))
返回“默认”;
返回super.get(key);
}
};
System.out.println(map.get(“someKey”);
扩展HashMap
并覆盖get()
而不是尝试给数据赋值,为什么不在想要提取数据时进行检查呢
if (!set.containsKey(key)){
return default_value;
}
else{
return set.get(key);
}
不,不能将其用作切换条件。 您可以通过将get方法扩展到另一个类来重写该方法,也可以按如下方式进行尝试:
Map<String, String> test = new HashMap<String, String>();
test.put("today", "monday");
String s = test.get("hello") == null? "default value" : test.get("hello");
System.out.println("Test =:" + s);
其中打印:
value of key1
default value
最好检查返回值,而不是更改
Map
在IMO中的工作方式。StringUtils.defaultString(String)
方法应该可以实现以下功能:
Map<String, String> test = new HashMap<>();
assertEquals("", StringUtils.defaultString(test.get("hello")));
assertEquals("DEFAULT", StringUtils.defaultString(test.get("hello"), "DEFAULT"));
Map test=newhashmap();
assertEquals(“,StringUtils.defaultString(test.get(“hello”));
assertEquals(“DEFAULT”,StringUtils.defaultString(test.get(“hello”),“DEFAULT”);
StringUtils JavaDoc是。覆盖
映射
。注意这会破坏合同。
value of key1
default value
Map<String, String> test = new HashMap<>();
assertEquals("", StringUtils.defaultString(test.get("hello")));
assertEquals("DEFAULT", StringUtils.defaultString(test.get("hello"), "DEFAULT"));