Is there any way the following for loop could be converted to use an IntStream
?
for (int i =1; i<=5; i++) { nums.add(n.nextInt(45)+1); }
I tried as following very simply:
IntStream.range(1,5).forEach(nums.add(n.nextInt(45)+1));
But it outputs the following error:
incompatible types: boolean cannot be converted to IntConsumer IntStream.range(1,5).forEach(nums.add(n.nextInt(45)+1));
Answer
You were missing the parameter of the lambda expression:
IntStream.rangeClosed(1,5).forEach(i -> nums.add(n.nextInt(45)+1));
Besides, you need rangeClosed
if you want the indices to go from 1 to 5 inclusive.
That said, there are cleaner ways to use IntStream
to produce random numbers. For example:
Random rand = new Random(); int[] nums = rand.ints(5,1,46).toArray();