【问题标题】:How to add Map using lambda expression in java如何在 java 中使用 lambda 表达式添加 Map
【发布时间】:2017-06-13 05:06:12
【问题描述】:

我想在 java 中使用 lambda 表达式将两个 Map 添加到第三个映射中。 以下是我的代码。谁能告诉我怎么做。

我想把上面两张地图变成第三张地图,比如 Mapurls=repo+data

请给我建议解决方案。

【问题讨论】:

  • 当您有重复的密钥时会发生什么?
  • 你可以遍历两个映射:repo.forEach((key, value) -> mapurls.put(key, value));data.forEach((key, value) -> mapurls.put(key, value));,如果你在repo和data中拥有相同的key,data的值将被存储
  • @oliv37 与mapurls#putAll相比有什么优势?
  • @bradimus 没什么,他想使用 lambda 表达式。顺便说一句,你可以写repo.forEach(mapurls::put);

标签: java lambda


【解决方案1】:

遍历每个键、值并将它们添加到 finalMap 应该可以工作 -

Map<String, String> repo = TestRailReader.appendPathToUrl(urlRepo, CoreKeywords.REPO.name());
Map<String, String> data = TestRailReader.appendPathToUrl(urlData, CoreKeywords.DATA.name());
Map<String, String> mergedMap = new HashMap<>();
repo.forEach(mergedMap::put);
data.forEach(mergedMap::put);

虽然@Emax 在 cmets 中建议的解决方案更适合需要合并的情况。 - Merging two Map<String, Integer> with Java 8 Stream API

【讨论】:

  • 您最好致电Map.putAll 并让Map 决定它想要如何循环。
猜你喜欢
  • 2015-10-07
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多