亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解java8中的Stream數(shù)據(jù)流

 更新時間:2017年10月16日 08:44:13   作者:貝克田莊  
Stream使用一種類似用SQL語句從數(shù)據(jù)庫查詢數(shù)據(jù)的直觀方式來提供一種對Java集合運算和表達的高階抽象。接下來通過本文給大家分享java8中的Stream數(shù)據(jù)流知識,感興趣的朋友一起看看吧

Stream是java8引入的一個重度使用lambda表達式的API。Stream使用一種類似用SQL語句從數(shù)據(jù)庫查詢數(shù)據(jù)的直觀方式來提供一種對Java集合運算和表達的高階抽象。直觀意味著開發(fā)者在寫代碼時只需關(guān)注他們想要的結(jié)果是什么而無需關(guān)注實現(xiàn)結(jié)果的具體方式。這一章節(jié)中,我們將介紹為什么我們需要一種新的數(shù)據(jù)處理API、Collection和Stream的不同之處以及如何將StreamAPI應(yīng)用到我們的編碼中。

篩選重復(fù)的元素

Stream 接口支持 distinct 的方法, 它會返回一個元素(根據(jù)流所生成元素的 hashCode和equals方法實現(xiàn))的流。

例如,以下代碼會篩選出列表中所有的偶數(shù),并確保沒有 重復(fù)。

List<Dish> dishes = Dish.menu.stream()
.filter(Dish::isVegetarian)
.collect(Collectors.toList());

跳過指定數(shù)量的元素

Stream 支持 skip(n) 方法,返回一個扔掉了前n個元素的流。如果流中元素不足n個,則返回一 個空流。limit(n) 和 skip(n) 是互補的

List<Dish> dishSkip = Dish.menu.stream().filter(d -> d.getCalories() > 300).skip(2) //去掉符合要求的集合中的前2個元素后返回
.collect(Collectors.toList());
dishSkip.forEach(System.out::println);

map 操作

Stream 支持 map 方法,它會接受一個函數(shù)作為參數(shù)。這個函數(shù)會被應(yīng)用到每個元素上,并將其映 射成一個新的元素

List<String> list = st.skip(0).limit(2).map(s->s.toUpperCase()).collect(Collectors.toList());

元素求和

List<Integer> numbers = Arrays.asList(3,4,5,1,2);
int sum1 = numbers.stream().reduce(0,(a, b) -> a + b);
System.out.println(sum1);
int sum2 = numbers.stream().reduce(0,Integer::sum);
System.out.println(sum2);

最大值

int max = numbers.stream().reduce(0,Integer::max);
System.out.println(max);

最小值

//reduce不接受初始值,返回一個Optional對象(考慮流中沒有任何元素的情況)
Optional<Integer> min = numbers.stream().reduce(Integer::min);
min.ifPresent(System.out::println);

總結(jié)

以上所述是小編給大家介紹的java8中的Stream數(shù)據(jù)流,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java實現(xiàn)模擬機器人對話的示例代碼

    Java實現(xiàn)模擬機器人對話的示例代碼

    本文主要介紹了Java實現(xiàn)模擬機器人對話的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-06-06
  • java實現(xiàn)捕魚達人游戲

    java實現(xiàn)捕魚達人游戲

    這篇文章主要介紹了java實現(xiàn)捕魚達人游戲,大部分功能都已實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 基于JDK8總結(jié)java中的interrupt

    基于JDK8總結(jié)java中的interrupt

    本文是基于JDK8總結(jié)java中的interrupt知識,需要的朋友可以參考下
    2017-12-12
  • Java實現(xiàn)冒泡排序示例介紹

    Java實現(xiàn)冒泡排序示例介紹

    冒泡排序是一種簡單的排序算法,通過不斷比較相鄰兩個元素的大小,將較大的元素向后移動,最終將最大的元素放到了數(shù)組的末尾。Java中的實現(xiàn)方式是通過嵌套兩層循環(huán),外層循環(huán)控制比較的次數(shù),內(nèi)層循環(huán)控制每次比較時相鄰元素的比較和交換
    2023-04-04
  • Spring中@Scheduled注解的參數(shù)詳解

    Spring中@Scheduled注解的參數(shù)詳解

    這篇文章主要介紹了Spring中@Scheduled注解的參數(shù)詳解,@Scheduled注解的使用這里不詳細說明,@Scheduled注解有幾個參數(shù)需要說明一下,直接對8個參數(shù)進行講解,需要的朋友可以參考下
    2023-11-11
  • Springboot+ElementUi實現(xiàn)評論、回復(fù)、點贊功能

    Springboot+ElementUi實現(xiàn)評論、回復(fù)、點贊功能

    這篇文章主要介紹了通過Springboot ElementUi實現(xiàn)評論、回復(fù)、點贊功能。如果是自己評論的還可以刪除,刪除的規(guī)則是如果該評論下還有回復(fù),也一并刪除。需要的可以參考一下
    2022-01-01
  • java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法

    java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法

    這篇文章主要為大家詳細介紹了java獲取網(wǎng)絡(luò)圖片上傳到OSS,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • Java?jar打包成exe應(yīng)用程序的詳細步驟

    Java?jar打包成exe應(yīng)用程序的詳細步驟

    本文主要介紹了Java?jar打包成exe應(yīng)用程序的詳細步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 深入解析Java的Servlet過濾器的原理及其應(yīng)用

    深入解析Java的Servlet過濾器的原理及其應(yīng)用

    這篇文章主要介紹了深入解析Java的Servlet過濾器的原理及應(yīng)用,Java編寫的Servlet通常是一個與網(wǎng)頁一起作用于瀏覽器客戶端的程序,需要的朋友可以參考下
    2016-01-01
  • SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決

    SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決

    這篇文章主要介紹了SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論