📜  Java中的即时 range() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:56.137000             🧑  作者: Mango

Java中的即时range()方法及示例

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() 方法时,切勿将 startInclusiveendExclusive 参数交换,这可能导致程序出现异常。