在Map中交换值

时间:2013-12-04 18:02:23

标签: java

有两张地图:主地图和修改地图。

if modifiedmap.key == mastermap.key
then set mastermap.value = modifiedmap.value

这是现在正在做的事情

for (Map.Entry<String, String> entry : modified_map.entrySet()) 
{
    for(Map.Entry<String,String> entry1:master_map.entrySet())
    {
        if(entry.getKey().equalsIgnoreCase(entry1.getKey()))
        {
            entry1.setValue(entry.getValue());
        }
    }
}

我正在使用两个嵌套循环。 地图如何有一个名为containsKey()的方法 所以我尝试使用master_map.containsKey()modified_map)然后分配值

然而,在尝试使用单个循环时,我没有得到如何获得与匹配键对应的mastermap

类似这样的事情

for (Map.Entry<String, String> entry : modified_map.entrySet()) 
{
    if(master_map.containsKey(entry.getKey()))
    then get the corresponding value then swap it
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你需要这样的东西:

for (Map.Entry<String, String> entry : modified_map.entrySet()) {
  if (master_map.containsKey(entry.getKey())
    master_map.put (entry.getKey(),entry.getValue());
}

这会修改master_map中具有modified_map中显示的密钥的每个条目的值。

  

V put(K键,       V值)

     

将指定的值与此映射中的指定键相关联   (可选操作)。 如果地图以前包含地图   键,旧值由指定值替换。 (地图m是   据说当且仅当m.containsKey(k)包含密钥k的映射   会回来的。)