Java Stream skip() 示例

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(257)   2023-07-15 09:14:57

Stream skip(n) 方法用于从给定 Stream 中跳过第一个 'n' 元素

skip() 方法返回一个新的 Stream,它包含原始 Stream 的剩余元素,在指定的 n 元素被丢弃之后在相遇顺序

1. Stream skip() 方法

1.1.方法语法

Stream<T> skip(long n)

n 是要丢弃的前导元素的数量。它返回一个新的 Stream,其中包含从原始流中选取的元素。

如果 n 为负,该方法可能会抛出 IllegalArgumentException

1.2.描述

  • Stream skip() 方法是 有状态中间操作。在处理新元素时,有状态操作(如不同和已排序)可能会合并先前看到的元素的状态。
  • 在丢弃流的前 n 个元素后,返回由流的剩余元素组成的流。
  • 如果流包含的元素少于 n 个,则将返回一个空流。
  • 一般来说,skip() 是一个开销很小的操作,它在有序的并行管道上可能会非常昂贵,尤其是对于较大的 n 值。
  • 使用无序流源(例如 generate(Supplier))或使用 BaseStream.unordered() 移除排序约束可能会导致 $$$ 的显着加速 在并行管道中。
  • skip() 跳过遇到顺序中的前 n 个元素。

2. Stream skip() 例子

在这个 Java 程序中,我们使用 skip() 方法从无限偶数流中跳过前 5 个偶数,然后将接下来的 10 个偶数收集到一个新的流中。

Stream<Integer> evenNumInfiniteStream = Stream.iterate(0, n -> n + 2);

List<Integer> newList = evenNumInfiniteStream
		.skip(5)
		.limit(10)
		.collect(Collectors.toList());
		
System.out.println(newList);

程序输出。

[10, 12, 14, 16, 18, 20, 22, 24, 26, 28]

3.总结

Stream skip() 方法在我们需要从 Stream 中获取元素的某些情况下很有用,但首先,我们需要从 Stream 中跳过一些元素

事实上,skip() 以遇到的顺序返回元素,这使得它对于正常的业务用例也非常有用。

快乐学习!!

地址:https://www.cundage.com/article/stream-skip-example.html

相关阅读

Java 8 Stream.map() 将 Stream&lt;X&gtl; 转换为 Stream&lt;Y&gtl;。对于每个 X 类型的对象,都会创建一个新的 Y 类型的对象,并将其放入新的...
Stream skip(n) 方法用于从给定 Stream 中跳过第一个 'n' 元素。 skip() 方法返回一个新的 Stream,它包含原始 Stream 的剩余元素,在指定的 n 元素被...
Stream flatMap() 方法用于将集合流扁平化为对象流。这些对象是从原始 Stream 中的所有集合组合而来的。 flatMap() 操作具有对 Stream 的元素应用一对多转换的效...
学习使用 Stream.concat() 方法用于将两个流合并为一个流,该流由两个合并流的所有元素组成。 1.流concat()方法 static &lt;T&gtl; Stream&lt;T&...
学习计算 Stream 中由指定过滤器表达式传递的匹配项。统计项目,我们可以使用以下两种方法,都是终端操作,结果是一样的。 Stream.count() Stream.collect(Colle...
Java Stream anyMatch(predicate) 是终端短路操作。它用于检查 Stream 是否包含至少一个满足给定 Predicate 的元素。 1. 流 anyMatch() ...
findFirst() 方法返回一个 Optional 描述 给定流的第一个元素 如果 流 是非空的,或者如果流为空,则为空 Optional。 1.流findFirst()方法 Optiona...
findAny() 方法返回一个 Optional 描述 给定流的任何元素 如果 流 是非空的,或者如果流为空,则为空 Optional。 在非并行流中,findAny() 将在大多数情况下返回...
了解如何使用 Stream toArray() API 将 Stream 转换为数组。在本教程中,我们将看到多个示例,用于将 Stream 元素收集到 数组。 1. Stream toArray...
Java Stream allMatch() 是一个短路终端操作,用于检查流中的所有元素是否满足提供的谓词。 1.流allMatch()方法 1.1.句法 boolean allMatch(Pr...