如何將List集合中相同屬性的對象合並


  在實際的業務處理中,我們經常會碰到需要合並同一個集合內相同屬性對象的情況,比如,同一個用戶短時間內下的訂單,我們需要將各個訂單的金額合並成一個總金額。那么用lambda表達式和HashMap怎么分別處理該種情況呢?本文以Student的name,age,score為例,一個List集合中有多個Student對象,針對name和age相同屬性值的Student對象,對score值相加並合並為一條,介紹兩種不同的處理辦法。
1.用lambda表達式:首先,我們新建一個Student類

 然后在Demo中新建一個List集合存放Student對象,並用lambda表達式進行處理,其中parallelStream是一個並行執行的流.它通過默認的ForkJoinPool,提高你的多線程任務的速度。從結果中我們可以看到,對name和age屬性值相同的張三,score值已經相加,並合並為一條新的對象。

 2.HashMap合並集合:為了更直觀的展示,我們重新new了一個新的類,並重寫了hashCode和equal方法。

 思路就是利用HashMap的key不能相同,去除相同的key,得到一個新的value值。運行結果如下,相同name和age的student對象中score相加,並得到一個新的對象。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM