有什么办法可以将以下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/