Java8Stream
生活随笔
收集整理的这篇文章主要介绍了
Java8Stream
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
判断一个操作是惰性求值还是及早求值很简单:只需看它的返回值。如果返回值是 Stream,那么是惰性求值。其实可以这么理解,如果调用惰性求值方法,Stream 只是记录下了这个惰性求值方法的过程,并没有去计算,等到调用及早求值方法后,就连同前面的一系列惰性求值方法顺序进行计算,返回结果。
通用形式为:
Stream.惰性求值.惰性求值. ... .惰性求值.及早求值。
Stream是java.util.stream的一个类。
public class StudyStream {private List<HeroEntity> list;@Beforepublic void init(){list = new ArrayList<>();list.add(new HeroEntity("影魔","敏捷"));list.add(new HeroEntity("QOP","智力"));list.add(new HeroEntity("德鲁伊","敏捷"));list.add(new HeroEntity("矮人狙击手","敏捷"));list.add(new HeroEntity("幻影刺客","敏捷"));list.add(new HeroEntity("撼地神牛","力量"));}@Testpublic void filterAGI() throws InterruptedException {/*** List对象调用stream()将会放回一个Stream<E>对象,* Steam对象调用filter(lambda表达式)会返回一个Steam对象,* Steam对象.collect(Collectors.toList())返回一个List<E>*/List<HeroEntity> listAGI = list.stream().filter(l -> {return l.getProperty().equals("敏捷"));//注意这里的return,相当于是一个函数了,只终止l -> {函数} 中的函数,所以下面的listAGI.forEach正常执行
}.collect(Collectors.toList());listAGI.forEach(l -> System.out.println(l.toString()));} } 输出结果如下: HeroEntity[name=影魔,property=敏捷,super.toString()=com.study.test.all.java8function.HeroEntity@2da6452] HeroEntity[name=德鲁伊,property=敏捷,super.toString()=com.study.test.all.java8function.HeroEntity@574c0a81] HeroEntity[name=矮人狙击手,property=敏捷,super.toString()=com.study.test.all.java8function.HeroEntity@24cc03b0] HeroEntity[name=幻影刺客,property=敏捷,super.toString()=com.study.test.all.java8function.HeroEntity@3af4a3ab]
参考来源:“https://www.cnblogs.com/snowInPluto/p/5981400.html”
转载于:https://www.cnblogs.com/theRhyme/p/9133773.html
总结
以上是生活随笔为你收集整理的Java8Stream的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: apache-jmeter-3.1的简单
- 下一篇: Java基础(三)面向对象(下)