Har*_*ekh 3 java hashmap java-8
void addToMapIfKeyExists(String k, String v) {
if (!map.containsKey(k)) {
throw new NoSuchElementException(k + " does not exist in the map");
}
// else ignore
if (v != null) {
map.put(k, v);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在 Java 8 中以更好的方式编写这个吗?我可以通过某种方式将其合并为一个表达式吗?
您可以在一个声明中:
public void overwrite(String k, String v) {
map.compute(k, (key, value) -> {
if (value == null) throw new NoSuchElementException(key + " does not exist in the map");
return v == null ? value : v;
});
}
Run Code Online (Sandbox Code Playgroud)
上面的做法是:
[1] 如果 key 不在映射中,或者映射为 null,则抛出NoSuchElementException。
[2] 否则,如果您尝试设置 ,则不会执行任何操作null。
[3] 否则,会将键设置为新值
这显然是您想要的,但这是一个奇怪的需求组合。
| 归档时间: |
|
| 查看次数: |
7769 次 |
| 最近记录: |