1. 程式人生 > >list的五種去重方法

list的五種去重方法

面試中經常被問到的list如何去重,一般是口述,不需要程式碼體現,這個時候,思維一定要清晰,可以羅列出集中去重的方法,以展現你對list資料結構,以及相關方法的掌握,體現你的java基礎學的是否牢固  下面,我就將五種方法逐一展現  新建一個list陣列:  List list = new ArrayList();  list.add(26);  list.add(39);  list.add(5);  list.add(40);  list.add(39);  list.add(25);  System.out.println(list); 方法一:使用java8新特性stream進行List去重 

List newList = list.stream().distinct().collect(Collectors.toList());  System.out.println(“java8新特性stream去重:”+newList);  list.add(39); 方法二:雙重for迴圈去重  for (int i = 0; i < list.size(); i++) {  for (int j = 0; j < list.size(); j++) {  if(i!=j&&list.get(i)==list.get(j)) {  list.remove(list.get(j));  }  }  }  System.out.println(“雙重for迴圈去重:”+list);  list.add(39); 方法三:set集合判斷去重,不打亂順序 
Set set1 = new HashSet();  List newList1 = new ArrayList();  for (Integer integer : list) {  if(set1.add(integer)) {  newList1.add(integer);  }  }  System.out.println(“set集合判斷去重:”+list);  list.add(39); 方法四:遍歷後判斷賦給另一個list集合  List newList2 = new ArrayList();  for (Integer integer : list) {  if(!newList2.contains(integer)){  newList2.add(integer);  }  }  System.out.println(“賦值新list去重:”+newList2);  list.add(39); 方法五:set和list轉換去重 
Set set2 = new HashSet();  List newList3 = new ArrayList();  set2.addAll(list);  newList3.addAll(set2);  System.out.println(“set和list轉換去重:”+newList3); ---------------------  作者:Trainer2107  來源:CSDN  原文:https://blog.csdn.net/Trainer2107/article/details/78571619  版權宣告:本文為博主原創文章,轉載請附上博文連結!