Java 8 Stream Api 中的 skip 和 limit 操作
2021-03-29 12:27
标签:lan reac integer exce argument 等于 意义 简单的 一个 Java 8 Stream API 中的 经过测试,当 也就是说 当 这两个方法都是截取了流。但是它们有一些区别 而 今天对Java Stream API 的 Java 8 Stream Api 中的 skip 和 limit 操作 标签:lan reac integer exce argument 等于 意义 简单的 一个 原文地址:https://blog.51cto.com/14901317/2527895skip()
和limit()
方法具有类似的作用。它们都是对流进行裁剪的中间方法。今天我们来探讨一下这两个方法。2. skip()
skip(lang n)
是一个跳过前 n
个元素的中间流操作。我们编写一个简单的方法来进行skip
操作,将流剩下的元素打印出来。 public static void skip(long n) {
Stream
n < 0
时直接抛出了 IllegalArgumentException
异常。毕竟要跳过一些元素,跟下象棋一个道理不能后退只能向前。当 n=0
时,原封不动完璧归赵。这种操作一般我们不会主动搞,没有意义。当 n=4
时,打印了 5
和 6
,由此可推断当我们取值大于等于流的大小时肯定什么也没有了,对于流来说肯定是个空流。经过检验确实count=0
。skip(long n)
方法跳过前 n
(非负)个元素,返回剩下的流,有可能为空流。3. limit()
limit(long maxsize)
我们也如法炮制: public static void limit(long maxsize) {
Stream
n < 0
时直接抛出了 IllegalArgumentException
异常。当 n=0
时,返回一个空流。当 n=4
时,打印了 1
、 2
、3
、 4
。 n=8
时,打印了所有元素。感觉跟 mysq 的分页有异曲同工之妙。4. 区别
skip
操作必须时刻监测流中元素的状态。才能判断是否需要丢弃。所以 skip
属于状态操作。limit
只关心截取的是不是其参数 maxsize
(最大区间值),其它毫不关心。一旦达到就立马中断操作返回流。所以 limit
属于一个中断操作。5. 总结
skip()
和limit()
方法进行了探讨。不知道你会想到在什么场景下会分别用到它们呢,不妨留言告诉我。
文章标题:Java 8 Stream Api 中的 skip 和 limit 操作
文章链接:http://soscw.com/essay/69519.html