IntStream.range
Suppose you want to operate on numbers in sequential order: 1, 2, 3. You could create an array and use a for
-loop to get these numbers.
Alternatively, you can use IntStream.range
with 2 arguments. The IntStream.rangeClosed
method, which is almost the same, is also available.
This program demonstrates IntStream.range
and IntStream.rangeClosed
. It creates the IntStreams
and then displays them to the console.
IntStream
that is returned.RangeClosed
has an inclusive (closed) end. If the second argument is 15, the 15 is included.import java.util.Arrays; import java.util.stream.IntStream; public class Program { public static void main(String[] args) { // Use IntStream.range. IntStream range1 = IntStream.range(10, 15); System.out.println("Range(10, 15): " + Arrays.toString(range1.toArray())); // Use IntStream.rangeClosed. IntStream range2 = IntStream.rangeClosed(10, 15); System.out.println("RangeClosed(10, 15): " + Arrays.toString(range2.toArray())); } }Range(10, 15): [10, 11, 12, 13, 14] RangeClosed(10, 15): [10, 11, 12, 13, 14, 15]
Range()
is a useful method. We can create a Stream
and then operate upon it with IntStream
-based methods like filter()
. This is a powerful approach to solving problems.
Typically it is a better idea to create a range-based IntStream
with range()
and rangeClosed()
. But an int
array, and the Arrays.stream()
method, can also be used.