Stream.skip

Stream skip​(long n)

返回一个新的stream,该stream包含原stream中跳过前n个元素后的所有元素。如果原stream中的元素数量小于n则返回一个空的stream。

和limit方法的区别,skip是指新流包含跳过原流中前n个元素后的全部元素,这是个有状态的中间操作,必须要处理整个输入元素才能产生最终结果,而limit是指取原流中前n个元素放进新流中返回,这是个短路的中间操作,无须处理完全部输入操作即可终止操作获得最终返回结果。比如limit用在处理无限流的截取操作,只要获得指定数量的输入元素就终止无限流的输入。关于limit方法的使用可以参看18章。

Skip方法示例:

void stream_skip() {

        Stream.of(1,2,3,4,5,6,7,8).skip(5).forEach(System.out::print);

    }

运行结果:

678

上例中使用skip(5)直接跳过原流中前5个元素,把之后的3个元素放到新流中返回。

以上返回结果是有序流中执行的结果,如果是有序并行流的返回结果就会出现无法预料的顺序,如下示例:

void stream_skip() {

        Stream.of(1,2,3,4,5,6,7,8).skip(3).forEach(System.out::print);

        System.out.println("\n------ ");

    List.of(1,2,3,4,5,6,7,8).parallelStream().skip(3).forEach(System.out::print);

    }

运行结果:

45678

------

65784

Skip配合limit和collect这两个方法可以很容易对集合中的元素实现分页操作,如下代码示例:

List pagelist = list.stream().skip(pageSize*i).

                                    limit(pageSize).

                                      collect(Collectors.toList());

这算是一个很好很实用的应用。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stream.skip.limit.map是Java 8中Stream API的一些操作方法。其中,skip(n)方法用于跳过前n个元素,limit(n)方法用于限制最多只能获取前n个元素,map(func)方法用于将每个元素通过传入的函数func进行映射转换。这些方法可以用于对集合或数组进行处理和转换。 例如,引用中的代码演示了如何将一个字符串数组中的每个字符串拆分为字符,并使用flatMap方法将所有字符合并为一个流,然后使用distinct方法去除重复的字符,最后使用forEach方法打印输出结果。 引用中的代码演示了如何使用limit方法限制只获取集合中的前n个元素。 引用中的代码演示了如何使用map方法将列表中的每个元素进行乘以2的操作,并将操作结果收集到一个新的列表中。 总结来说,stream.skip.limit.map是一系列可以用于对集合或数组进行处理和转换的方法,可以根据需求选择并使用它们。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Stream入门(4)----skip、limit、map、flatMap](https://blog.csdn.net/qq_33304139/article/details/120586821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值