欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java8Stream

发布时间:2025/4/16 java 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。