Rumah > Soal Jawab > teks badan
方法都很简单, 不解释了. 如何用java8 的新api改为更优雅的 一行代码格式?
void addOne(Map<String, Integer> map,
String key,
int increment,
int defVal){
if(map.containsKey(key))
map.put(key, map.get(key) + increment);
else
map.put(key, defVal);
}
void addString(Map<String, Set<String>> map,
String key,
String val){
if(!map.containsKey(key))
map.put(key, new HashSet<>());
map.get(key).add(val);
}
PHP中文网2017-04-17 13:13:45
使用Map接口提供的几个工具方法应该可以,如下:
void addOne(Map<String, Integer> map,
String key,
int increment,
int defVal){
// map.compute(key, (k, v) -> key.equals(k) ? v + increment : defVal);
map.compute(key, (k, v) -> v == null ? defVal : v + increment)
}
void addString(Map<String, Set<String>> map,
String key,
String val){
map.computeIfAbsent(key, k -> new HashSet<>()).add(val);
}