java - 从另一个映射值更新一个映射键
问题描述
我有一个名为 HashMap list
,其中包含一些key/values
. 我有另一个 HashMap 调用modify
,其中包含另一组key/values
.
基本上,modify
hashmap 应该包含一个与 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
有没有人对实现这一目标的最佳方法有任何建议?
解决方案
尝试迭代键和值:
modifyList.forEach(list::replace);
这与以下内容相同:
modifyList.forEach((k, v) -> list.replace(k, v));
现在,如果您要自己重新映射键,可以使用put
and的组合remove
:
modifyList.forEach((k, v) -> list.put(v, list.remove(k)));
推荐阅读
- reactjs - 组件 div 背景和实际背景颜色之间的冲突
- c++ - 如何访问 std::variant 中的类型?
- c++ - C++ 错误“_main”,引用自:“Xcode
- php - sql查询未执行
- angular - 在 Angular 中渲染一个子组件 afterViewInit
- python - Tkinter 的超类
- python - Python 从字面上隐藏一行并跳过调用函数
- python - 最后一位以 5 舍入小数点
- dns - 将 example.com 重定向到 www.example.com
- apache - 强制将 HTTPS 与 .COM 域和 .htaccess 中的 WWW 一起使用