Java中的IntStream range()方法的使用
Posted 格子衫111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的IntStream range()方法的使用相关的知识,希望对你有一定的参考价值。
前言:
Java中,IntStream是一个接口,继承BaseStream。
里面有很多方法,如:filter()、map()、sorted()、empty()等,
下面,介绍一下它的一个常用静态方法:range() 方法。
源码:
/**
* Returns a sequential ordered {@code IntStream} from {@code startInclusive}
* (inclusive) to {@code endExclusive} (exclusive) by an incremental step of
* {@code 1}.
*
* @apiNote
* <p>An equivalent sequence of increasing values can be produced
* sequentially using a {@code for} loop as follows:
* <pre>{@code
* for (int i = startInclusive; i < endExclusive ; i++) { ... }
* }</pre>
*
* @param startInclusive the (inclusive) initial value
* @param endExclusive the exclusive upper bound
* @return a sequential {@code IntStream} for the range of {@code int}
* elements
*/
public static IntStream range(int startInclusive, int endExclusive) {
if (startInclusive >= endExclusive) {
return empty();
} else {
return StreamSupport.intStream(
new Streams.RangeIntSpliterator(startInclusive, endExclusive, false), false);
}
}
说明:
- range()方法,创建一个以1为增量步长,从startInclusive(包括)到endExclusive(不包括)的有序的数字流。
- 产生的IntStream对象,可以像数组一样遍历。
用法:
static IntStream range(int startInclusive,int endExclusive);
参数
- IntStream : 原始整数值元素的序列
- startInclusive : 规定了数字的起始值,包括
- endExclusive : 规定了数字的上限值,不包括
返回值
一个int元素范围的顺序IntStream
导包
要使用Java中的IntStream类,请导入以下包:
import java.util.stream.IntStream;
举例:
class RangeTest {
public static void main(String[] args) {
/*
* Creating an IntStream:
* --including the lower bound but
* --excluding the upper bound
*/
IntStream intStream = IntStream.range(1,5);
// Displaying the elements in range
intStream.forEach(System.out::println);
//上述代码简要写法
// IntStream.range(1,5).forEach(i-> System.out.println(i));//创建一个1-4的数字流,并打印
}
}
运行结果:
扩展:
如果想要数字是闭区间,可以使用 rangeClosed() 方法
static IntStream rangeClosed(int startInclusive, int endInclusive)
此方法和range的使用一模一样,唯一的区别是endInclusive参数是包含的
以上是关于Java中的IntStream range()方法的使用的主要内容,如果未能解决你的问题,请参考以下文章