gpt4 book ai didi

java - 使用 Java 流将集合转换为映射 : how to put predefined Enum as value

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:18 24 4
gpt4 key购买 nike

我有一个 Long 集合,出于某种原因,我需要从该集合创建一个映射,该映射将集合的元素作为键,将 1 个预定义枚举作为值(所有键都具有相同的值)。

我正在尝试使用 Streams 实现这一点,如下所示:

private Map<Long, Marker> mapMarker(Collection<Long> ids, Marker marker) {
return ids.stream().collect(Collectors.toMap(Function.identity(), marker));
}

编译器因以下错误而失败:

no instance(s) of type variable(s) T, U exist so that Marker conforms to Function<? super T, ? extends U>

有人可以向我解释为什么会失败吗?有没有办法通过 Streams 获得预期的结果?

最佳答案

如果 Marker 是您要映射到 ids 中所有键的枚举,您可以这样做:

return ids.stream().collect(Collectors.toMap(Function.identity(), id -> marker));

您非常接近,只是 id -> marker 是一个 Function,正如 Collectors.toMap 所预期的那样

关于java - 使用 Java 流将集合转换为映射 : how to put predefined Enum as value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53606088/

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