gpt4 book ai didi

Java8 Stream - 来自 IntStream 的字节 HashSet

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

我正在尝试创建一个 HashSet<Byte>byte s 1, 2, 3, ... 9使用 Java 8 Streams API。我想用 IntStream然后将值降级为 byte会做的。

我正在尝试的变体

HashSet<Byte> nums = IntStream.range(1, 10).collect(Collectors.toSet());

HashSet<Byte> nums = IntStream.range(1, 10).map(e -> ((byte) e)).collect(Collectors.toSet());

但这些都不起作用。

Error:(34, 73) java: method collect in interface java.util.stream.IntStream cannot be applied to given types;
required: java.util.function.Supplier<R>,java.util.function.ObjIntConsumer<R>,java.util.function.BiConsumer<R,R>
found: java.util.stream.Collector<java.lang.Object,capture#1 of ?,java.util.Set<java.lang.Object>>
reason: cannot infer type-variable(s) R
(actual and formal argument lists differ in length)

我需要做吗 flatMapmapToObject

最佳答案

您需要使用 mapToObj,因为 HashSet 和所有泛型都需要对象

Set<Byte> nums = IntStream.range(1, 10)
.mapToObj(e -> (byte) e)
.collect(Collectors.toSet());

关于Java8 Stream - 来自 IntStream 的字节 HashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081379/

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