gpt4 book ai didi

java - 将 Set 转换为 Map

转载 作者:行者123 更新时间:2023-12-01 07:00:27 25 4
gpt4 key购买 nike

我有以下 Collection :

Set<Map.Entry<Event, Long>> entries

事件 POJO:

public class Event{
private long epoch;
private List<Pair<String, String> eventParams;
}

我想将条目集合转换为 Map<String, Set<String>>

示例:

List<Pair<String, String> eventParams = Arrays.asList(Pair.of("abc","123"), Pair.of("abc","456"));

转换后的集合:

Map<String, Set<String>> converted = ["abc", ["123", "456"]]

我尝试了以下方法:

entries.stream().flatMap(x -> x.getKey().getEventParams().stream())
.collect(Collectors.groupingBy(Pair::getKey, Collectors.toSet(Pair::getValue)));

但是,我收到错误:无法应用收集器中的 toSet

正确的做法是什么?

最佳答案

替换

Collectors.toSet(Pair::getValue)

Collectors.mapping(Pair::getValue, Collectors.toSet())

问题是 Collectors.toSet()没有任何参数,它对输入流定义的类型进行操作。 Collectors.mapping(mapper, downstream)通过“在累积之前将映射函数应用于每个输入元素”来改变此行为。

关于java - 将 Set<V> 转换为 Map<String, Set<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58081682/

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