Java基礎之去除List集合中的重複元素
在java中去除list集合中的重複元素很常見,這裡總結一下幾種方法。
1、使用for迴圈list中的所有元素然後刪除重複
/** * 使用for迴圈刪除list中的重複元素 * @param list * @return */ public static List removeDuplicate1(List list) { for (int i = 0; i < list.size() - 1; i++) { for (int j = list.size() - 1; j > i; j--) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } return list; }
2.使用HashSet刪除重複元素
/** * 使用HashSet刪除重複元素 * @param list * @return */ public static List removeDuplicate2(List list) { HashSet h = new HashSet(list); list.clear(); list.addAll(h); return list; }
3.使用迭代器刪除list中的重複元素
/** * 使用迭代器刪除list中的重複元素 */ public static void removeDuplicateWithOrder3(List list) { Set set = new HashSet(); List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext(); ) { Object element = iter.next(); if (set.add(element)) newList.add(element); } list.clear(); list.addAll(newList); System.out.println(" remove duplicate " + list); }
4.把list裡的物件遍歷一遍,用list.contains(),如果不存在就放入到另外一個list集合中
/** * 把list裡的物件遍歷一遍,用list.contains(),如果不存在就放入到另外一個list集合中 * @param list * @return */ public static List removeDuplicate4(List list) { List listTemp = new ArrayList(); for (int i = 0; i < list.size(); i++) { if (!listTemp.contains(list.get(i))) { listTemp.add(list.get(i)); } } return listTemp; }
5.//用JDK1.8 Stream中對List進行去重:list.stream().distinct()
List list = (List) a.stream().distinct().collect(Collectors.toList()); System.out.println(list);
測試程式碼如下:
public static void main(String[] args) { List<String> a = new ArrayList<>(); a.add("1"); a.add("2"); a.add("3"); List<String> b = new ArrayList<>(); b.add("1"); b.add("3"); b.add("2"); a.addAll(b); //用JDK1.8 Stream中對List進行去重:list.stream().distinct() List list = (List) a.stream().distinct().collect(Collectors.toList()); System.out.println(list); System.out.println(removeDuplicate1(list)); System.out.println(removeDuplicate2(list)); removeDuplicateWithOrder3(list); System.out.println(removeDuplicate4(list)); }
執行結果如下圖所示:
相關文章
- 使用HashSet<>去除重複元素的集合
- List中去除重複物件物件
- 如何去除有序陣列中的重複元素陣列
- Java之ArrayList去除重複元素(包括字串和自定義物件)Java字串物件
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- java基礎總結(面試高頻問題)十二:Java的集合類,陣列去除重複資料的方法Java面試陣列
- 【Java面試題】54 去掉一個Vector集合中重複的元素Java面試題
- Java程式設計基礎17——集合(List集合)Java程式設計
- java陣列中重複元素的去重Java陣列
- javascript去除陣列中重複元素程式碼例項JavaScript陣列
- Java 基礎(四)集合原始碼解析 ListJava原始碼
- java基礎學習之九:集合型別Set/List/MapJava型別
- 使用jQuery去除陣列中的重複元素程式碼例項jQuery陣列
- PHP陣列去除空白或重複元素PHP陣列
- PHP陣列學習之怎麼去除空白或者重複的元素PHP陣列
- java 基礎之 Set、Map、ListJava
- java lambda list集合中物件某屬性重複,只取第一個物件Java物件
- 一句程式碼搞定陣列去重(去除陣列中的重複元素)陣列
- Remove Duplicates from Sorted List 去除連結串列中重複值節點REM
- sample, choices: 從list中隨機選擇無重複的元素隨機
- js 的陣列去除重複元素程式碼例項JS陣列
- Java基礎之淺談集合Java
- python中列表如何去除重複Python
- 如何去除 EXCEL 檔案中的重複行Excel
- java基礎學習之十:集合型別Set/List/Map(TreeSet,LinkedList,TreeMap)Java型別
- python——集合set不存在重複元素Python
- Java集合(5)之 List 總結Java
- 【Java基礎】集合Java
- java基礎-StringBuild、StringBuffer,集合List、Map、SetJavaUI
- Java刪除ArrayList中的重複元素的2種方法Java
- 利用excel去除txt文字中重複項Excel
- List集合物件去重及按屬性去重的8種方法-java基礎總結系列第六篇物件Java
- js去除重複字串JS字串
- Java中List集合效能比較Java
- 查詢Set中重複的元素
- 好程式設計師分享HashSet實現去除重複元素程式設計師
- Android基礎之Java集合框架CollectionAndroidJava框架
- java集合-ListJava