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)); }
執行結果如下圖所示:
相關文章
- List中去除重複物件物件
- Java之ArrayList去除重複元素(包括字串和自定義物件)Java字串物件
- 如何去除有序陣列中的重複元素陣列
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- Java程式設計基礎17——集合(List集合)Java程式設計
- java基礎總結(面試高頻問題)十二:Java的集合類,陣列去除重複資料的方法Java面試陣列
- java list 集合去重Java
- java陣列中重複元素的去重Java陣列
- PHP陣列去除空白或重複元素PHP陣列
- PHP陣列學習之怎麼去除空白或者重複的元素PHP陣列
- sample, choices: 從list中隨機選擇無重複的元素隨機
- java lambda list集合中物件某屬性重複,只取第一個物件Java物件
- Java基礎之淺談集合Java
- python——集合set不存在重複元素Python
- leetcode 316.去除重複字母 JavaLeetCodeJava
- python中列表如何去除重複Python
- NPP++去除文字中的重複行
- list 集合去重
- Android基礎之Java集合框架CollectionAndroidJava框架
- Java集合(5)之 List 總結Java
- Stream流對List集合篩選重複欄位
- 如何去除 EXCEL 檔案中的重複行Excel
- java集合-ListJava
- List集合物件去重及按屬性去重的8種方法-java基礎總結系列第六篇物件Java
- 好程式設計師分享HashSet實現去除重複元素程式設計師
- 力扣之存在重複元素力扣
- LeetCode 存在重複元素之JavaScriptLeetCodeJavaScript
- Java中List集合效能比較Java
- 查詢Set中重複的元素
- python去除列表中的重複元素,簡單易理解,超詳細解答,步驟分析Python
- 進行List集合去重操作,分為保持原List集合元素順序和不保持原順序
- JAVA 如何實現大文字去除重複行Java
- LeetCode 316. 去除重複字母 java題解LeetCodeJava
- Java 中的泛型 集合(List,Set) MapJava泛型
- 資料處理之去除重複資料
- Java基礎 —— 集合(二)Java
- Java基礎-集合框架Java框架
- Java基礎系列—List排序Java排序