gpt4 book ai didi

java - 使用 Java 流从现有 map 创建新 map

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:10 26 4
gpt4 key购买 nike

我有一个具有以下结构的 map :

Map<String, Map<String, String>> input;

它基本上包含一组 ID,每个 ID 都有一个与属性关联的值。

For ex:
ID: Attribute Value
A X 100
A Y 200
B X 40
B Y 40

我只对每个 ID 的属性 X 感兴趣,我想做一些处理并将其存储在新 map 中将具有相同的定义 Map>

我正在 Java 8 中尝试:

Map<String, Map<String, String>> getResults(Map<String, Map<String, String>> input) {
input.entrySet().stream()
.map(id -> {
String valueX = id.getValue().get("X");
String computeX = compute(valueX);
// Now start adding these results to the new map.
} )
}

我无法理解如何将其添加到新 map 。

最佳答案

您可以通过这种方式将输入 map 的条目收集到新 map 中:

Map<String, Map<String, String>> getResults(Map<String, Map<String, String>> input) 
{
return input.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
e -> {
Map<String,String> map = new HashMap<>();
map.put("X",e.getValue().get("X"));
return map;
}));
}
  • 输出映射的键与输入映射的键相同。

  • 输出映射的值是通过创建一个新的 HashMap<String,String> 来构造的并将 "X" 的值放入其中键。

关于java - 使用 Java 流从现有 map 创建新 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45430264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com