最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java8新特性將List中按指定屬性排序過濾重復(fù)數(shù)據(jù)的方法

 更新時間:2019年08月06日 15:30:36   作者:龍貓大俠客  
這篇文章主要介紹了java8新特性將List中按指定屬性排序過濾重復(fù)數(shù)據(jù)的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

在java中常常會遇到這樣一個問題,在實際應(yīng)用中,總會碰到對List排序并過濾重復(fù)的問題,如果List中放的只是簡單的String類型過濾so easy,但是實際應(yīng)用中并不會這么easy,往往List中放的是一個類,類中有多個屬性,要過濾重復(fù)數(shù)據(jù),而且這個重復(fù)數(shù)據(jù)要按自己指定的屬性過濾,但是要想按照其它屬性排序順序過濾,所以要先排序一下,然后按照某個屬性過濾。

實體類如下所示,大家只要創(chuàng)建下面的實體類,無需繼承父類,大家不會注解式風(fēng)格的話,請自行加上getter/setter方法。

  • 首先看看graphResults這個List里面究竟有什么數(shù)據(jù),數(shù)據(jù)顯示如下,由于數(shù)據(jù)量較多,以下僅顯示要處理的條數(shù),以及大概結(jié)構(gòu),大家可仔細看看17:30分這個時間的數(shù)據(jù),下面主要處理這個時間點。
  • 現(xiàn)在我要對這個List做如下處理
  1. 按時間順序排序
  2. 在時間排序的基礎(chǔ)上再對pv1Power和pv2Power從大到小排序
  3. 過濾重復(fù)時間且功率為0的無效字段,僅保留一個有效字段,若全部為0也要保留成僅有一條該時間的數(shù)據(jù)

為了適應(yīng)以上需求,采用jdk1.8的新特性steam流來做,整體思路,是將List放入stream流中,然后進行依次排序,要過濾重復(fù)時間段的數(shù)據(jù),當(dāng)然要Set集合來登場,要按指定屬性過濾,當(dāng)然要傳一個時間,最后返回List集合。

//先按日期從小到大排序,再按功率從大到小,之后放入集合中過濾重復(fù),返回List
      graphResults = graphResults.stream().sorted(Comparator.comparing(GraphResult::getDate)
          .thenComparing((o1, o2) -> Integer.compare(o2.getPv1Power(), o1.getPv1Power()))
          .thenComparing((o1, o2) -> Integer.compare(o2.getPv2Power(), o1.getPv2Power())))
          .collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
              new TreeSet<>(Comparator.comparing(GraphResult::getDate))), ArrayList::new));//過濾重復(fù)時間點

通過上述代碼運行后的結(jié)果就顯而易見了,發(fā)現(xiàn)17點30分這個時間不重復(fù)了,而且無效數(shù)據(jù)也不存在了,完美的實現(xiàn)了以上的需求

總結(jié)

以上所述是小編給大家介紹的java8新特性將List中按指定屬性排序過濾重復(fù)數(shù)據(jù)的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • java登錄驗證碼實現(xiàn)代碼

    java登錄驗證碼實現(xiàn)代碼

    這篇文章介紹了java實現(xiàn)登錄驗證碼:用興趣的同學(xué)可以參考一下
    2013-10-10
  • SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對數(shù)據(jù)庫密碼加密的方法

    SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對數(shù)據(jù)庫

    這篇文章主要介紹了SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對數(shù)據(jù)庫密碼加密的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • RSA加密的方式和解密方式實現(xiàn)方法(推薦)

    RSA加密的方式和解密方式實現(xiàn)方法(推薦)

    下面小編就為大家?guī)硪黄猂SA加密的方式和解密方式實現(xiàn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • JDK1.8源碼下載及idea2021導(dǎo)入jdk1.8源碼的詳細步驟

    JDK1.8源碼下載及idea2021導(dǎo)入jdk1.8源碼的詳細步驟

    這篇文章主要介紹了JDK1.8源碼下載及idea2021導(dǎo)入jdk1.8源碼的詳細步驟,在文章開頭就給大家分享了JDK1.8源碼下載地址和下載步驟,告訴大家idea2021.1.3導(dǎo)入JDK1.8源碼步驟,需要的朋友可以參考下
    2022-11-11
  • Jpa使用Page和Pageable分頁遇到的問題及解決

    Jpa使用Page和Pageable分頁遇到的問題及解決

    這篇文章主要介紹了Jpa使用Page和Pageable分頁遇到的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • springboot開啟聲明式事務(wù)的方法

    springboot開啟聲明式事務(wù)的方法

    本篇文章主要介紹了springboot開啟聲明式事務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 基于Java實現(xiàn)一個簡單的數(shù)據(jù)同步組件

    基于Java實現(xiàn)一個簡單的數(shù)據(jù)同步組件

    這篇文章主要為大家詳細介紹了如何基于Java實現(xiàn)一個簡單的數(shù)據(jù)同步組件,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-06-06
  • Spring?this調(diào)用當(dāng)前類方法無法攔截的示例代碼

    Spring?this調(diào)用當(dāng)前類方法無法攔截的示例代碼

    這篇文章主要介紹了Spring?this調(diào)用當(dāng)前類方法無法攔截,通過debug 查看這個proxyService1 和this的區(qū)別,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java設(shè)計模式中的工廠及抽象工廠模式解析

    Java設(shè)計模式中的工廠及抽象工廠模式解析

    這篇文章主要介紹了Java設(shè)計模式中的工廠及抽象工廠模式解析,工廠模式作為創(chuàng)建型設(shè)計模式中常見的設(shè)計方法,一般情況下,工廠模式分為3種,簡單工作、工廠方法、抽象工作,其實簡單工廠只是工廠方法的一種特例,需要的朋友可以參考下
    2023-12-12
  • 使用mybatis-plus想要修改某字段為null問題

    使用mybatis-plus想要修改某字段為null問題

    這篇文章主要介紹了使用mybatis-plus想要修改某字段為null問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

绍兴县| 永康市| 江津市| 松原市| 克什克腾旗| 灵台县| 宜丰县| 建昌县| 东平县| 满洲里市| 米易县| 得荣县| 泊头市| 高雄县| 前郭尔| 黔江区| 施甸县| 敦煌市| 台安县| 衡阳市| 巴彦县| 松桃| 晋州市| 收藏| 永清县| 交城县| 宕昌县| 广州市| 榆林市| 托里县| 宁明县| 荆门市| 阳江市| 南和县| 洪江市| 柳河县| 新安县| 北川| 历史| 舟曲县| 顺平县|