将IntStream转换为int

5

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

我想返回一个60-120范围内的随机整数,并尝试了以下代码:

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

但是我知道我还需要将它再次转换为int,但是不知道如何操作。


https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#toArray-- - Scary Wombat
new Random().ints(1, 60, 121).forEach(System.out::println); - achAmháin
如果你只想要一个值,你就不会使用Stream。int n = ThreadLocalRandom.current().nextInt(61) + 60;(注意:这不会创建任何对象。) - Peter Lawrey
3
@PeterLawrey 或 ThreadLocalRandom.current().nextInt(60, 121) - Holger
使用Random中的nextInt方法获取一个随机整数。你为什么要创建一个整数流? - Goura
1个回答

8

由于您创建了一个只包含一个元素的流,因此可以使用findFirst()方法获取该元素:

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

话虽如此,仅仅为了产生一个随机数而创建一个 IntStream 没有意义。您可以使用 RandomnextInt() 来实现。

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接