Stream skip()跳过前N个子元素
Posted 爆米花9958
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stream skip()跳过前N个子元素相关的知识,希望对你有一定的参考价值。
skip()方法跳过流的第一个给定的一些元素后,skip方法返回由该流的其余元素组成的流。
Java文档中skip方法声明
Stream<T> skip(long n)
参数: 传递要跳过的前导元素的数量。
返回: 方法返回一个新的跳过元素的流。
抛出: 如果我们传入负数,它抛出 IllegalArgumentException .
1. skip方法用于从一开始跳过给定数量元素的源流创建新流。
2. skip方法对于有序的并行管道来说代价高昂,特别是对于大数量的 n .
3. skip方法是顺序流管道的廉价操作。
4. 如果要跳过的元素数 n 等于或大于流中的元素数,则输出将为空流。
5.skip方法是有状态的中间操作。
有状态的中间操作
中间操作分为无状态和有状态操作。 在处理filter和map等新元素时,无状态操作不会保留先前看到的元素的状态。在处理诸如skip和limit方法之类的新元素时,有状态操作可能包含以前看到的元素的状态。
示例1:
在这个例子中我们有一个整数流元素,我们使用skip方法来获取新的流,其中前三个元素将被丢弃。
Stream.of(10, 20, 30, 40, 50) .skip(3) .forEach(System.out::println);
输出40,50。
示例2:
在这个例子中我们有一连串的整数。 首先我们筛选和提取偶数,然后在最后的结果中跳过前2个子元素.
Stream.of(11,12,13,14,15,16,17,18)
.filter(n -> n % 2 == 0) //12,14,16,18
.skip(2) //16,18
.forEach(System.out::println);
输出16,18。
示例3:
这里我们有一个字母。 首先我们对其进行排序,然后跳过前2 个元素。
Stream.of("C", "B", "D", "F", "E", "A")
.sorted()// A,B,C,D,E,F
.skip(2) //C,D,E,F
.forEach(System.out::println);
输出C, D, E, F。
示例4:
在这个例子中,我们将跳过比流中元素数量更多的元素。 输出将是空流。
Stream.of("A", "B", "C", "D") .skip(5) .forEach(System.out::println);
这不会打印任何内容,因为跳过后流中没有元素。
参考:
以上是关于Stream skip()跳过前N个子元素的主要内容,如果未能解决你的问题,请参考以下文章