Java Stream skip()方法详解

后端 潘老师 6个月前 (10-28) 130 ℃ (0) 扫码查看

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()方法是状态中间操作。诸如distinct和sorted之类的状态操作在处理新元素时可能会结合以前看到的元素的状态。
  • 返回一个流,该流包含在丢弃流的前n个元素之后流中的剩余元素。
  • 如果流包含的元素数量少于n个,则返回一个空流。
  • 通常,skip()是一种高效的操作,在有序的并行管道上可能非常低效,尤其是对于较大的n值。
  • 使用无序的流源(例如generate(Supplier))或使用BaseStream.unordered()去除排序约束可能导致并行管道中skip()的速度大大提高。
  • skip()按 encounter 顺序跳过流中的前n个元素。

2.Stream skip() 示例

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

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中获取元素,但首先需要跳过几个元素,则Stream的skip()方法非常有用。

事实上,skip()按encounter顺序返回元素,这使得它在正常的业务用例中非常有用。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/10463.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】