java - 根据第二个地图中键的顺序对地图进行排序
问题描述
我有 2 个LinkedHashMaps<String, SomeList>,
说Map1,Map2两个地图中的键是相同的,但顺序可以不同。
例子:
地图1:
Hello, Value1
How, Value2
Are, Value3
You, Value4
地图2:
Hello, Value1
You, Value4
Are, Value3
How, Value2
我想按键对 Map2 进行排序,使其顺序与 Map1 相同。
我正在寻找的结果:
地图2:
Hello, Value1
How, Value2
Are, Value3
You, Value4
解决方案
只需LinkedHashMap
通过迭代 的键map1
并为每个键获取对应的值来创建一个新的map2
:
Map<String,String> sorted =
map1.keySet()
.stream()
.collect(Collectors.toMap(Function.identity(),
map2::get,
(v1,v2)->v1,
LinkedHashMap::new));
推荐阅读
- vb.net - VB.Net:Winforms Designer:在父自定义控件中使用自定义控件中的动词
- azure - 在 Azure 中通过 Powershell 执行远程命令,无需脚本
- c# - 需要解释一下,为什么EF核心现在需要使用attach
- airflow-scheduler - 当属性'catchup = false'时了解气流执行日期
- javascript - Angular 8 防止在重复选项卡上的浏览器选项卡之间共享会话
- xgboost - 如何在 sklearn 的 HistGradientBoostingClassifier 中构造直方图以决定最佳分割点
- hibernate - jpa保存工作但没有数据
- docker - 在不使用 imagepullsecret 的情况下使用 kubernetes-helm 应用程序拉取私有注册表映像
- typo3 - 如何通过 TypoScript 配置类别列表(TYPO3 新闻扩展)
- python - 为什么我可以使用 True 或 False 作为列表的索引?