天天看點

distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?

1.使用LinkedHashSet删除arraylist中的重複資料

場景:考慮資料順序、不允許添加重複資料

LinkedHashSet是在一個ArrayList删除重複資料的最佳方法。LinkedHashSet在内部完成兩件事:

  • 删除重複資料
  • 保持添加到其中的資料的順序

Java示例使用LinkedHashSet删除arraylist中的重複項。在給定的示例中,numbersList是包含整數的arraylist,其中一些是重複的數字。

例如1,3和5.我們将清單添加到LinkedHashSet,然後将内容傳回到清單中。結果arraylist沒有重複的整數。

輸出結果

2.使用java8新特性stream進行List去重

場景: 資料量很大,考慮性能、效率。用java8流操作還是很快的

要從arraylist中删除重複項,我們也可以使用java 8新特性Stream流。使用steam的distinct()方法傳回一個由不同資料組成的流,通過對象的equals()方法進行比較。

收集所有區域資料List使用Collectors.toList()。

Java程式,用于在不使用Set的情況下從java中的arraylist中删除重複項。

輸出結果

3.利用HashSet不能添加重複資料的特性 

場景:不考慮添加的順序

4.利用List的contains方法循環周遊,重新排序,隻添加一次資料,避免重複:

場景:需要一個新集合、資料量較小。性能稍差

5.雙重for循環去重場景:和第四個差別不大。性能稍差

for (
           

喜歡公衆号的朋友可以 關注 、 點贊 、 點再看 !

distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?
distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?

掃碼關注

distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?
distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?

公衆号:   Javatwjd

            部落格:http://g6e.cn/R6RYZu

distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?

球分享

distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?

球點贊

distinct多個字段去重_考慮性能、優雅代碼的情況下,List集合去重怎麼操作?

球在看

繼續閱讀