通过实例了解Java 8创建Stream流的5种方法
这篇文章主要介绍了通过实例了解Java8创建Stream流的5种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
不知不觉间,Java已经发展到13了,来不及感慨时间过得真的太快了,来不及学习日新月异的技术更新,目前大多数公司还是使用的JDK8版本,一方面是版本的稳定,另一方面是熟悉,所以很多公司都觉得不升级也挺好。
说到JDK8,真的是一个里程碑的版本,一出世就受到所有开发者的青睐,并主动花时间和精力去学习,也是我见过企业升级JDK最豪爽最不犹豫的一个版本,可见JDK8的受欢迎程度。当然所有的喜爱都是因为它的特性,整理了jdk8的十大主要特性:
- Lambda表达式
- Stream函数式操作流元素集合
- 接口新增:默认方法与静态方法
- 方法引用,与Lambda表达式联合使用
- 引入重复注解
- 类型注解
- 最新的Date/TimeAPI(JSR310)
- 新增base64加解密API
- 数组并行(parallel)操作
- JVM的PermGen空间被移除:取代它的是Metaspace(JEP122)
每一个特性都值得被了解掌握,都值得去学习,提高开发效率或者代码的可读性,具体的特性介绍就不在这儿开展了,感兴趣的小伙伴自行去看,本篇主要介绍一下Java8创建Stream流的5种方法。
Java8创建Stream流的5种方法
一、使用数组
//使用数组 String[]arr={"ma","zhi","chu","is","java","developer","family"}; Streamstream=Stream.of(arr); //stream=Stream.of("ma","zhi","chu","is","java","developer","family"); String[]stringArr={"ma","zhi","chu","love"}; Stream stream1=Arrays.stream(stringArr);
二、使用Collections
//使用Collections Listlist=newArrayList (); list.add("ma"); list.add("zhi"); list.add("chu"); Stream stream2=list.stream();
三、使用Stream.generate()
//使用Stream.generate() Streamstream3=Stream.generate(()->"love").limit(10); String[]strArr3=stream3.toArray(String[]::new); System.out.println(Arrays.toString(strArr3));
四、使用Stream.iterate()
//使用Stream.iterate() StreambigIntStream=Stream.iterate(BigInteger.ZERO,n->n.add(BigInteger.ONE)).limit(10); BigInteger[]bigIntArr=bigIntStream.toArray(BigInteger[]::new); System.out.println(Arrays.toString(bigIntArr));
五、使用流行的APIs,如Pattern.compile().splitAsStream()
//5、使用PopularAPIs Stringsentence="mazhichuisaJavawechatofficialaccount."; StreamwordStream=Pattern.compile("\\W").splitAsStream(sentence); String[]wordArr=wordStream.toArray(String[]::new); System.out.println(Arrays.toString(wordArr));
看一下完整示例,
packagecom.mzc.common.stream; importjava.math.BigInteger; importjava.util.ArrayList; importjava.util.Arrays; importjava.util.List; importjava.util.regex.Pattern; importjava.util.stream.Stream; /** **功能:Java8创建流的5种方法 * * *@authorMoore *@ClassNameCreatestream. *@VersionV1.0. *@date2019.12.0211:55:24 */ publicclassCreateStream{ publicstaticvoidmain(String[]args){ //1、使用数组 String[]arr={"ma","zhi","chu","is","java","developer","family"}; Stream stream=Stream.of(arr); //stream=Stream.of("ma","zhi","chu","is","java","developer","family"); String[]stringArr={"ma","zhi","chu","love"}; Stream stream1=Arrays.stream(stringArr); System.out.println(Arrays.toString(stream.toArray(String[]::new))); System.out.println(Arrays.toString(stream1.toArray(String[]::new))); //2、使用Collections List list=newArrayList (); list.add("ma"); list.add("zhi"); list.add("chu"); Stream stream2=list.stream(); stream2.forEach(l->{ System.out.println(l); }); //3、使用Stream.generate() Stream stream3=Stream.generate(()->"love").limit(10); String[]strArr3=stream3.toArray(String[]::new); System.out.println(Arrays.toString(strArr3)); //4、使用Stream.iterate() Stream bigIntStream=Stream.iterate(BigInteger.ZERO,n->n.add(BigInteger.ONE)).limit(10); BigInteger[]bigIntArr=bigIntStream.toArray(BigInteger[]::new); System.out.println(Arrays.toString(bigIntArr)); //5、使用PopularAPIs Stringsentence="mazhichuisaJavawechatofficialaccount."; Stream wordStream=Pattern.compile("\\W").splitAsStream(sentence); String[]wordArr=wordStream.toArray(String[]::new); System.out.println(Arrays.toString(wordArr)); } }
运行结果:
可以看见,以上五种方式都可以创建stream流来操作数据,使用哪一种方式创建看具体场景而言。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。