您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何在java中使用Stream函數(shù),內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Java是一門面向?qū)ο缶幊陶Z言,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。
1.概念
它的主要作用就是對集合數(shù)據(jù)進行查找過濾等操作。有點類似于SQL的數(shù)據(jù)庫操作。一句話來解釋就是一種高效且易用的數(shù)據(jù)處理方式。
2.創(chuàng)建流
通過一個集合創(chuàng)建Stream
@Test public void test1(){ List<Student> studentList = StudentData.getStudents(); //第一種:返回一個順序流 Stream<Student> stream = studentList.stream(); //第二種:返回一個并行流 Stream<Student> stream2 = studentList.parallelStream(); }
3.操作流
通過 filter() 方法可以從流中篩選出我們想要的元素。
public class FilterStreamDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("周杰倫"); list.add("王力宏"); list.add("陶喆"); list.add("林俊杰"); Stream<String> stream = list.stream().filter(element -> element.contains("王")); stream.forEach(System.out::println); } }
4.終止Stream
匹配和查找
public void test1(){ List<Student> list = StudentData.getStudents(); //(1)判斷所有的學(xué)生年齡是否都大于20歲 boolean allMatch = list.stream().allMatch(item -> item.getAge() > 20); //(2)判斷是否存在學(xué)生的年齡大于20歲 boolean anyMatch = list.stream().anyMatch(item -> item.getAge() > 20); //(3)判斷是否存在學(xué)生叫曹操 boolean noneMatch = list.stream().noneMatch(item -> item.getName().equals("曹操")); //(4)查找第一個學(xué)生 Optional<Student> first = list.stream().findFirst(); //(5)查找所有的學(xué)生數(shù)量 long count = list.stream().count(); long count1 = list.stream().filter(item -> item.getScore() > 90.0).count(); //(6)查找當前流中的元素 Optional<Student> any = list.stream().findAny(); //(7)查找學(xué)生最高的分數(shù):Student實現(xiàn)了comparable接口的話,可直接比較 Stream<Double> doubleStream = list.stream().map(item -> item.getScore()); doubleStream.max(Double::compare); //(8)查找學(xué)生最低的分數(shù) }
關(guān)于如何在java中使用Stream函數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。