【问题标题】:Convert IntStream to int将 IntStream 转换为 int
【发布时间】:2018-02-07 08:00:01
【问题描述】:

我以前从未在 java 中使用过流,现在正在尝试测试如何使用流完成简单的示例。

我想返回一个 60-120 范围内的随机 int 并尝试过这个:

return new Random().ints(1,60,121);

但我知道我还必须再次将其转换回 int 但不知道如何。

【问题讨论】:

  • new Random().ints(1, 60, 121).forEach(System.out::println);
  • 如果你只想要一个值,你不会使用 Stream。 int n = ThreadLocalRandom.current().nextInt(61) + 60;(注意:这不会创建任何对象。)
  • @PeterLawrey 或ThreadLocalRandom.current().nextInt(60, 121)
  • 使用来自RandomnextInt 获得一个随机整数。你为什么要创建一个 int 流?

标签: java java-8 java-stream


【解决方案1】:

由于您使用单个元素创建了 Stream,因此您可以使用 findFirst() 获取该元素:

int randInt = new Random().ints(1,60,121).findFirst().getAsInt();

也就是说,为了生成单个随机数而创建IntStream 是没有意义的。你可以改用RandomnextInt()

如果你想生成多个随机整数,使用IntStream 会更有意义。在这种情况下,您可以将生成的IntStream 转换为数组:

int[] randInts = new Random().ints(1000,60,121).toArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2014-07-03
    • 2019-06-18
    • 2016-05-04
    • 1970-01-01
    • 2020-07-03
    相关资源
    最近更新 更多