📅  最后修改于: 2023-12-03 14:42:56.137000             🧑  作者: Mango
range()
方法是 Java 9 中引入的一个新增方法,返回一个由指定的起始值和步长构成的等差数列的流。
IntStream range(int startInclusive, int endExclusive)
IntStream rangeClosed(int startInclusive, int endInclusive)
range()
方法返回一个从 startInclusive
(包含)到 endExclusive
(不包含)的整数流,其中每个元素都相差 1
。如果 startInclusive >= endExclusive
,则返回一个空流。
rangeClosed()
方法返回一个从 startInclusive
(包含)到 endInclusive
(包含)的整数流,其中每个元素都相差 1
。如果 startInclusive > endInclusive
,则返回一个空流。
IntStream stream = IntStream.range(1, 10);
// 打印结果:1 2 3 4 5 6 7 8 9
stream.forEach(System.out::println);
IntStream stream2 = IntStream.rangeClosed(1, 10);
// 打印结果:1 2 3 4 5 6 7 8 9 10
stream2.forEach(System.out::println);
上面的示例代码使用 range()
和 rangeClosed()
方法分别构建了一个整数流,并分别打印了其中的元素。
range()
和 rangeClosed()
方法返回的都是即时流,也就是说它们不会产生任何的缓存和存储。
如果需要操作的数值范围很大,最好使用 LongStream
或者 DoubleStream
类型的流。
在使用 range()
和 rangeClosed()
方法时,切勿将 startInclusive
和 endExclusive
参数交换,这可能导致程序出现异常。