有什么办法可以将以下for循环转换为使用IntStream

for (int i =1; i<=5; i++)
{
   nums.add(n.nextInt(45)+1);
}

我非常简单地尝试如下:
IntStream.range(1,5).forEach(nums.add(n.nextInt(45)+1));

但是它输出以下错误:

最佳答案

您缺少了lambda表达式的参数:

IntStream.rangeClosed(1,5).forEach(i -> nums.add(n.nextInt(45)+1));

此外,如果您希望索引从1到5(包括5和5),则需要rangeClosed

也就是说,有更干净的方法可以使用IntStream产生随机数。例如:
Random rand = new Random();
int[] nums = rand.ints(5,1,46).toArray();

关于java - 可以将此for循环转换为IntStream吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49729290/

10-10 03:41