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基础(三)面向对象(下)