- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文将介绍 Java Stream.skip
方法示例。在Skip流的第一个给定元素后,skip
方法返回由该流的剩余元素组成的流。
从 Java 文档中找到 skip
方法声明。
Stream<T> skip(long n)
**参数:**传递要Skip的前导元素的数量。
返回: 该方法返回一个Skip元素的新流。
异常: 如果我们传递负数,它会抛出 IllegalArgumentException
。
1.skip
方法用于从源流创建一个新流,从开始时Skip给定数量的元素。
2.skip
方法对于有序并行管道的成本很高,尤其是对于较大数量的 n。
3.skip
方法是顺序流管道的廉价操作。
4. 如果要Skip的元素数 n 等于或大于流中的元素数,则输出将为空流。
5.skip
是有状态的中间操作。
有状态的中间操作
中间操作分为无状态操作和有状态操作。在处理诸如 filter
和 map
之类的新元素时,无状态操作不会保留先前看到的元素的状态。在处理新元素(例如 skip
和 limit
方法)时,有状态操作可能会合并来自先前看到的元素的状态。
查找 skip
方法的一些示例。
示例 1:
在这个例子中,我们有一个整数元素流,我们使用 skip
方法来获取新的流,其中前三个元素将被丢弃。
Stream.of(10, 20, 30, 40, 50)
.skip(3)
.forEach(System.out::println);
输出将是 40、50。
示例 2:
在这个例子中,我们有一个整数流。首先我们过滤它并提取偶数,然后在最终结果中Skip两个。
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:
这里我们有一个字母流。首先我们对其进行排序,然后Skip 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:
在此示例中,我们将Skip比流中元素数量更多的元素。输出将是空流。
Stream.of("A", "B", "C", "D")
.skip(5)
.forEach(System.out::println);
这将不打印任何内容,因为Skip后流中没有元素。
skip
方法从开始丢弃给定数量的元素,并返回新的流,其中元素的剩余数量一直到最后一个元素,而 limit
方法从第一个元素开始返回给定数量的元素的新流。 skip
和 limit
都是中间操作并返回新流。
示例 1:
这里我们有一个整数列表。我们将在源流上运行 limit
和 skip
。查看结果。
SkipLimitDemo.java
package com.concretepage;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class SkipLimitDemo {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
List<Integer> afterLimit = list.stream().limit(4).collect(Collectors.toList());
List<Integer> afterSkip = list.stream().skip(4).collect(Collectors.toList());
System.out.println("Limit: " + afterLimit);
System.out.println("Skip: " + afterSkip);
}
}
输出
Limit: [1, 2, 3, 4]
Skip: [5, 6, 7, 8]
示例 2:
在此示例中,我们将首先在源元素上运行 skip
,然后在 skip
方法返回的流上运行 limit
。
Stream.of(1,2,3,4,5,6,7,8)
.skip(2) //3,4,5,6,7,8
.limit(2) //3,4
.forEach(System.out::println);
输出将是 3,4。
我正在尝试实现具有以下签名的方法: public static Pair, Stream> flatten(Iterator, Stream>> iterator); 该方法的目标是将每种流类型展平
我有两个流从两个不同的 api 获取。 Stream get monthOutStream => monthOutController.stream; Stream get resultOutStre
Stream.of(int[])返回 Stream ,而 Stream.of(String[])返回 Stream . 为什么这两种方法的行为不同?两者都应该返回 Stream和 Stream或 St
我正在使用 rxdart在 dart 中处理流的包。我被困在处理一个特殊的问题上。 请看一下这个虚拟代码: final userId = BehaviorSubject(); Stream getSt
我到处都找遍了,还是没弄明白。我知道你可以用流建立两个关联: 用于支持数据存储的包装器意味着作为消费者和供应商之间的抽象层 数据随着时间的推移变得可用,而不是一次全部 SIMD 代表单指令,多数据;在
考虑下面的代码: List l=new ArrayList<>(); l.add(23);l.add(45);l.add(90); Stream str=l.stream
我有一个大型主干/requirejs 应用程序,我想迁移到 webpack,最新的“webpack”:“^4.27.1”,但我遇到了一个我无法解决的错误。 我一直在阅读 https://webpack
我正在使用 xmpp 开发聊天应用程序,根据我们的要求,我们有三台服务器 Apache Tomcat 7、ejabbered 2.1.11 和 mysql 5.5, to run xmppbot on
我知道如何使用 Java 库,并且我可以编写一些循环来执行我需要的操作,但问题更多,为什么 scala.collection.JavaConverters 中没有任何内容或scala.collecti
我正在尝试创建一个单一的衬里,它应该计算一个非常长的文本文件中的唯一单词。独特的词例如:márya fëdorovna scarlet-liveried,...所以基本上都是非英语词。 我的问题是我的
如果我有以下情况: StreamWriter MySW = null; try { Stream MyStream = new FileStream("asdf.txt"); MySW =
有人可以帮我将以下语句转换为 Java8: 我有一个像这样的 HashMap : private Map, List>> someMap; 我想在java8中转换以下逻辑: private Strin
有人可以帮我将以下语句转换为 Java8: 我有一个像这样的 HashMap : private Map, List>> someMap; 我想在java8中转换以下逻辑: private Strin
考虑两种测试方法parallel()和sequential(): @Test public void parallel() throws Exception { System.ou
我是 NodeJS 的新手,我基本上想做的是通过 HTTP 将 .pdf 上传到我的服务器。我正在使用 POST rquest 来处理 Content-Type multipart/form-data
哪个更好:MemoryStream.WriteTo(Stream destinationStream) 或 Stream.CopyTo(Stream destinationStream)?? 我正在谈
给定一个 Stream,我想创建一个新的 Stream,其中的元素在它们之间有时间延迟。 我尝试使用 tokio_core::reactor::Timeout 和 Stream 的 and_then
我是 Kafka Streams 和 Spring Cloud Stream 的新手,但在将集成相关代码移动到属性文件方面已经阅读了有关它的好东西,因此开发人员可以主要专注于事物的业务逻辑方面。 这里
源代码看起来非常相似:pump , pipe .为什么我要使用一个而不是另一个?一个只是另一个的更好版本吗? 最佳答案 Stream.pipe 现在显然是自 0.3.x 以来的首选方法,因此尽可能尝试
我正在寻找是否有更好的方法来解决我不得不使用这些签名的困境(注意:由于 Spock 测试,T[][] 是必需的,我提供 T[][] 作为数据提供商) 我的方法签名是: public T[][] cr
我是一名优秀的程序员,十分优秀!