Java 从某个键的映射中获取值,并将其添加为另一个映射中的另一个入口集

Java 从某个键的映射中获取值,并将其添加为另一个映射中的另一个入口集,java,Java,我的第一张地图 Map< String,Map< String,Object>> accounts = new HashMap< String,Map< String,Object>>(); 我的第二张地图 Map< String,Set< String>> groupMap = new HashMap< String,Set< String>>(); 需要比较这两个映射,并且基于第一个映射的

我的第一张地图

Map< String,Map< String,Object>> accounts = new HashMap< String,Map< String,Object>>();
  • 我的第二张地图

    Map< String,Set< String>> groupMap = new HashMap< String,Set< String>>();
    
  • 需要比较这两个映射,并且基于第一个映射的ID键值,我需要从第二个映射中获取值,并使用键名和键值将其添加回第一个映射


    我厌倦了遍历map,但我的map有很多条目,但只有某些条目有值

    如果我很了解您的问题,您需要获得与
    ID
    对应的
    Set
    ,并将其添加到与
    ID
    相同的子映射中:

    • 遍历这些对
    • 取回
      ID
    • ID
    • 集合
      添加到值对中

    请给出一个真实元素的例子,你的文本是不清晰的,因为我不能粘贴真实数据,我提供了一个从我的地图更新的样本,我的下一个问题,我将添加更清晰的数据。当我说“真实元素”时,只使用你的例子,而不是你在最后的句子。因为我不认为这里有“比较”的必要,所以我会在接下来的问题中相应地使用它。感谢您的回复,尝试提供的建议。我尝试迭代地图中的每个入口集,其中包含了很多操作,getOrDefault方法似乎很好,谢谢。
    Map< String,Set< String>> groupMap = new HashMap< String,Set< String>>();
    
    {001=[Value01, Value02], 
     002=[Value08, Value09, Value15], 
     013=[Value58, Value89, Value90]}
    
    for (Map.Entry<String, Map<String, Object>> account : accounts.entrySet()) {
        Map<String, Object> accountVal = account.getValue();
        String id = accountVal.getOrDefault("ID", "").toString();
        Set<String> setValues = entitlementMap.getOrDefault(id, Collections.emptySet());
        accountVal.put("name", new HashSet<>(setValues));
    }
    
    // From
    Entry52={Status=A, DisplayName=Test52, ID=052}
    Entry01={Status=A, DisplayName=Test01, ID=001}
    Entry02={Status=T, DisplayName=Test02, ID=002}
    
    // To 
    Entry52={Status=A, DisplayName=Test52, ID=052, name=[]}
    Entry01={Status=A, DisplayName=Test01, ID=001, name=[Value01, Value02]}
    Entry02={Status=T, DisplayName=Test02, ID=002, name=[Value15, Value09, Value08]}