博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8之Stream API(提取子流和组合流)
阅读量:7125 次
发布时间:2019-06-28

本文共 1422 字,大约阅读时间需要 4 分钟。

  hot3.png

Stream.limit(n)会返回一个包含n个元素的新流(如果原始流的长度小于n,则会返回原始的流)。例如:

package java8test;import java.util.stream.Stream;public class T2 {    public static void main(String[] args) {        Stream.generate(Math::random).limit(50).forEach(System.out::println);    //注意这句    }}

该示例会产生一个包含50个随机数字的流。又例:

package java8test;import java.util.stream.Stream;public class T2 {    public static void main(String[] args) {        //注意这句        Stream.of("1","2","3","4","5","6").limit(4).forEach(System.out::println);    }}

Stream.skip(n)正好相反,它会丢弃掉前面的n个元素。示例:

package java8test;import java.util.stream.Stream;public class T2 {    public static void main(String[] args) {        //注意这句        Stream.of("1","2","3","4","5","6").skip(4).forEach(System.out::println);    }}

你可以使用Stream类的静态方法concat将两个流连接到一起:

package java8test;import java.util.stream.Stream;public class T2 {    public static void main(String[] args) {        //注意这句        Stream.concat(Stream.of("1","2","3"), Stream.of("a","b","c")).            forEach(System.out::println);    }}

当然,第一个流的长度不应该是无限的——否则第二个流就永远没有机会被添加到第一个流的后面。

peek方法会产生另一个与原始流具有相同元素的流,但是在每次获取一个元素时,都会调用一个函数,这样便于调试

package java8test;import java.util.stream.Stream;public class T2 {    public static void main(String[] args) {        //注意这句        Stream.iterate(1, p -> p*2).peek(n -> System.out.println("num:" + n)).            limit(10).forEach(System.out::println);;    }}

转载于:https://my.oschina.net/fhd/blog/503550

你可能感兴趣的文章
django配置apache服务器(下)
查看>>
我的友情链接
查看>>
vCenter Server5.1安装(1)
查看>>
好用的usb加密软件,rohos mini drive。
查看>>
js表单验证
查看>>
jquery中formSerialize问题
查看>>
python学习记录-基础 2014/02/28
查看>>
html5播放mp4视频代码
查看>>
java ID生成策略个人总结
查看>>
关于当前的一点记忆or牢骚
查看>>
两个开放平台内部组件开放
查看>>
五 手游开发神器 cocos2d-x editor 之贴图(TexturePacker)
查看>>
Fastreport.Net用户手册:表达式显示
查看>>
flex与js交互浅析
查看>>
JAVA定时器
查看>>
chrome插件之如何抓取有防盗系统网站内容
查看>>
新建和增加SWAP分区
查看>>
我的友情链接
查看>>
插入排序(JAVA)
查看>>
SpringBoot+MyBatis事务管理
查看>>