如何更改一个映射对应于另一个映射中的值的键?

用户名

我正在做一个项目,在该项目中,下面的方法将包含一个“字符串和对象的映射”。并假设其中是否data Map包含这样的内容-

a = p
b = q
c = r
d = s
e = t
f = u
g = v
h = w
i = x

a, b, c, d, e, f, g钥匙在哪里p, q, r, s, t, u, v,在上面的地图中是否有相应的值。

下面是我的方法-

private void dataCheck(Map<String, Object> data) {


}

现在,我在另一个String和String映射中有另一个这样的静态映射-

public static final Map<String, String> STATIC_MAPPING = Collections.unmodifiableMap(new LinkedHashMap<String, String>() {{ 
put("a","hello");
put("b","world");
put("c","titan");
put("d","david");
put("e","elephant");
put("f","fire");
put("g","gel");
}});

这里keyahello,keybworldctitan,key的值与其他key值对相同。

现在,如上所述,在下面的方法中,我将在Map中获取包含上面所示数据的值-

private void dataCheck(Map<String, Object> data) {

// how to get extract the value of the key from the 
//  STATIC_MAPPING map corresponding to data map key.


// print out a new map here with latest mappings

}

现在,就像数据映射将具有一样a = p,它将被替换为,hello = p因为a它映射到helloSTATIC_MAPPING中所示的位置,并且与其他字段相同。我如何有效地做到这一点?

并假设如果数据映射中的键没有任何映射,那么我们将保持原样。

更新:-

所以我的新地图应该有这样的数据-

hello = p
world = q
titan = r
david = s
elephant = t
fire = u
gel = v
h = w
i = x

由于没有键的映射hi所以我会保持原样..

雅洛巴巴
    for (Map.Entry<String, Object> entry : data.entrySet()) {
        String key = entry.getKey();
        Object value = entry.getValue();
        String staticMappingValue = (String) STATIC_MAPPING.get(key);

        if (staticMappingValue != null) {
            newMap.put(staticMappingValue, value);
        } else {
            newMap.put(key, value);
        }
    }

这样newMap

["hello":"p", "world":"q", etc..., "h":"w"]

编辑:遵循Antoine Wils的建议并减少了对地图的访问,因为问题突出了效率。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据模式匹配将一个映射中的值替换为另一个映射中的值?

休眠映射中的另一个重复列

从某个键的映射中获取值并将其添加为另一个映射中的另一个条目集

如何将对象映射中的数组映射到另一个数组

在映射中创建值流,这些流是Java中另一个映射中的值

如何针对每个键删除一些整数后如何从一个映射中收集值并使用流生成另一个映射(Java 8)

ruby rackup:是否可以从另一个映射中以编程方式添加一个映射?

给定对应于另一个数组的数组键,我该如何合并它们?

更改所有元素对应于另一个列表索引列表

如何访问作为映射中键值对中的值存在的列表元素,其中映射存在于 Dart 中的另一个列表中

提取对应于另一个df的单个元素的数据帧的值

用对应于另一个数组的索引替换值

golang结构的另一个func更改映射

如何在一个数组中找到最大值,对应于另一个数组中的唯一值/点?

如何根据另一个单元格中的文本对字母对应于值的行求和?

如何在 Vimium 中将一个键重新映射到另一个键

如何映射键,在另一个字典中查找键?

从另一个cpp文件更改结构内,映射键内的变量

一个表更新对应于另一个表MySQL更新错误

枚举项映射到另一个值

如果一个键在Java中多次出现,则将一个值作为键,将另一个值作为列表进行映射

使用 angular2 映射 JSON 键并更新另一个 JSON 中的值

将对象键和值映射到另一个对象

Javascript - 基于另一个对象的值映射更新对象键

javascript通过映射更新基于另一个对象的对象键/值

创建一个将一个键映射到另一个键的数据结构

仅将一个键重新映射到另一个

实体错误映射中的另一个重复列

将一个值范围映射到另一个值