gpt4 book ai didi

java - Collectors toMap() - 从 Map.Entry 到 Map 结构的值映射器

转载 作者:行者123 更新时间:2023-11-30 01:43:47 24 4
gpt4 key购买 nike

我最近偶然发现了以下问题。

基本上,我有一组我想将其转换为 map 的 map 。下面是代码片段:

Set<Map.Entry<String,String> > testSet = new HashSet<>(
Arrays.asList(
entry("key1","value1"),
entry("key1","value1")
)
);

Map<String,Map<String,String>> testMap = testSet
.stream()
.collect(
Collectors.toMap(
entry -> entry.getKey(),
entry-> {
Map.ofEntries(
entry(entry.getKey(),entry.getValue() + "2")
);
}
)
);

上面的代码片段无法编译,因为传递给 toMap 的函数需要对象而不是 Map.Entry 对象,因此编译器无法找到特定于 Map.Entry 的方法。

我不知道为什么会发生这种情况,因此非常感谢您的帮助。

最佳答案

应该是:

Map<String,Map<String,String>> testMap = testSet
.stream()
.collect(
Collectors.toMap(
entry -> entry.getKey(),
entry -> Map.ofEntries(entry(entry.getKey(),entry.getValue() + "2"))
)
);

当您使用带有大括号的 lambda 表达式主体时,它必须包含 return 语句(假设相应的功能接口(interface)的方法有返回值)。

如果 lambda 表达式的主体只是单个表达式,则不必将其括在大括号中。

关于java - Collectors toMap() - 从 Map.Entry 到 Map 结构的值映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953539/

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