嵌套哈希图:不需要空检查和手动获取的 putIfAbsent 替代方案?

Nested Hashmap: Alternative to putIfAbsent which does not requires null check and manual get?

我有一个嵌套的 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);
}

如您所见,如果没有嵌套地图,我会添加。如果它已经存在,我将获取当前值作为 return 值。如果它不存在,putIfAbsent returns null 这需要我进行空检查并手动填充变量。

这似乎不是很干净,但我不知道更好的方法。

有没有办法添加不存在的值,并以更流畅的方式继续使用新值或先前存在的值?

使用computeIfAbsent:

private void add(String currentVersion, String targetVersion, Object object) {
    definedUpdatePlans.computeIfAbsent(currentVersion, k -> new HashMap())
                      .put(targetVersion, object);
}

它returns:

the current (existing or computed) value associated with the specified key, or null if the computed value is null