仅使用hashmap的条件向key添加值

时间:2016-07-30 23:30:02

标签: java hash hashmap

是否有任何方法可以在符合条件的情况下为键添加值(或更改键的值)?

我的意思是,像:

myHashMap.add(key, if(true){//add this value} else {//add a different value});

3 个答案:

答案 0 :(得分:4)

是的,请使用if-else

if (condition){
    myHashMap.put(key, value);
} else {
    myHashMap.put(key, otherValue);
}

如果您坚持使用三元运算符(请参阅Oracle tutorial条件运算符部分):

myHashMap.put(key, condition ? value : otherValue);

答案 1 :(得分:1)

不完全是,您必须执行以下操作:

// Assuming a boolean value is returned
if (myHashMap.get(key)) {
    myHashMap.put(key, value);
} else {
    myHashMap.put(key, differentValue);
}

答案 2 :(得分:1)

为了解决Reut的问题,如果您想要对地图中已有的值进行操作,那么从Java 8开始就有Map#compute:

Map<String, String> example = new HashMap<>();
//pretending we have values...
example.compute("My Key", (key, oldValue) -> oldValue == null ? "New" : "Read");