加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java8 Stream – 来自IntStream的字节的HashSet

发布时间:2020-12-15 01:00:46 所属栏目:Java 来源:网络整理
导读:我正在尝试创建一个HashSet Byte使用 Java 8 Streams API的字节1,2,3,… 9.我想使用IntStream,然后将值降级为byte就可以了. 我正在尝试变种 的HashSet字节 nums = IntStream.range(1,10).collect(Collectors.toSet()); 的HashSet字节 nums = IntStream.range
我正在尝试创建一个HashSet< Byte>使用 Java 8 Streams API的字节1,2,3,… 9.我想使用IntStream,然后将值降级为byte就可以了.

我正在尝试变种

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

的HashSet<字节> 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)

我需要做flatMap或mapToObject吗?

解决方法

您需要使用mapToObj,因为HashSet和所有泛型都需要对象
Set<Byte> nums = IntStream.range(1,10)
    .mapToObj(e -> (byte) e)
    .collect(Collectors.toSet());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读