首页 > 解决方案 > 从另一个映射值更新一个映射键

问题描述

我有一个名为 HashMap list,其中包含一些key/values. 我有另一个 HashMap 调用modify,其中包含另一组key/values.

基本上,modifyhashmap 应该包含一个与 key in 匹配的键(或多个键),list我想将 key in 更新为list与该 key in 匹配的值modify

我试过了:

iter = modifyList.entrySet().iterator();
while(iter.hasNext()) {
     list.replace(iter.next().getKey(), iter.next().getValue());
}

但是,您遇到的问题是,当您调用iter.next().getKey()它时显然会向前迭代,所以现在我想要的值不再next()是 in 而是 in current。但是我找不到任何方法来访问其中的内容current

有没有人对实现这一目标的最佳方法有任何建议?

标签: javamaps

解决方案


尝试迭代键和值:

modifyList.forEach(list::replace);

这与以下内容相同:

modifyList.forEach((k, v) -> list.replace(k, v));

现在,如果您要自己重新映射键,可以使用putand的组合remove

modifyList.forEach((k, v) -> list.put(v, list.remove(k)));

推荐阅读