是否有任何方法可以将以下for循环转换为使用IntStream?
for (int i =1; i<=5; i++)
{
nums.add(n.nextInt(45)+1);
}
Run Code Online (Sandbox Code Playgroud)
我非常简单地尝试了以下内容:
IntStream.range(1,5).forEach(nums.add(n.nextInt(45)+1));
Run Code Online (Sandbox Code Playgroud)
但它输出以下错误:
不兼容的类型:boolean不能转换为IntConsumer IntStream.range(1,5).forEach(nums.add(n.nextInt(45)+1));
您缺少lambda表达式的参数:
IntStream.rangeClosed(1,5).forEach(i -> nums.add(n.nextInt(45)+1));
Run Code Online (Sandbox Code Playgroud)
此外,rangeClosed如果您希望索引从1到5(包括1和5),则需要.
也就是说,有更简洁的方法IntStream来产生随机数.例如:
Random rand = new Random();
int[] nums = rand.ints(5,1,46).toArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |