在實際的業務處理中,我們經常會碰到需要合並同一個集合內相同屬性對象的情況,比如,同一個用戶短時間內下的訂單,我們需要將各個訂單的金額合並成一個總金額。那么用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相加,並得到一個新的對象。