我有一个嵌套的HashMap
,看起来像这样:HashMap<String, HashMap<String,Object>>
。
我创建了一个add
方法来填充HashMap
private void add(String currentVersion, String targetVersion, Object object) {
HashMap <String, HashMap <String, Object >> nestedMap = definedUpdatePlans.putIfAbsent(currentVersion, new HashMap());
if (nestedMap == null) {
nestedMap = definedUpdatePlans.get(currentVersion);
}
nestedMap.put(targetVersion, object);
}
如您所见,如果不存在,我将添加嵌套地图。如果已经存在,则将当前值作为返回值。如果不存在该变量,putIfAbsent
返回null
,这需要我进行空检查并手动获取该变量的值。
这似乎不是很干净,但是我不知道更好的方法。
是否可以添加一个不存在的值,并以更流畅的方式继续使用新值或现有值?
答案 0 :(得分:3)
使用[double precision]
:
computeIfAbsent
它返回:
与指定键关联的当前(现有或计算出的)值;如果计算出的值为null,则返回null