list去重 转载

http://blog.csdn.net/huaishuming/article/details/47778319

 

1. 单个List 去重:

    如果用的是Set集合就不用怕重复的问题了,如果用的List就要想办法将它变为Set

 

[java] view plain copy
 
  1. package com;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashSet;  
  5. import java.util.List;  
  6.   
  7. public class Test4 {  
  8.   
  9.     /** 
  10.      * @param args 
  11.      */  
  12.     public static void main(String[] args) {  
  13.         // TODO Auto-generated method stub  
  14.           
  15.         List<String> l1 = new ArrayList<String>();  
  16.         l1.add("a");  
  17.         l1.add("b");  
  18.         l1.add("c");  
  19.         l1.add("e");  
  20.         l1.add("e");  
  21.         l1.add("e");  
  22.         l1.add("e");  
  23.         l1.add("a");  
  24.         List<String> listWithoutDup = new ArrayList<String>(new HashSet<String>(l1));  
  25.           
  26.         for(String str : listWithoutDup){  
  27.             System.out.println(str);  
  28.         }  
  29.     }  
  30.   
  31. }  


2. 2个集合合并后去重:

 

 

 

[java] view plain copy
 
  1. package com;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashSet;  
  5. import java.util.List;  
  6.   
  7. public class Test3 {  
  8.   
  9.     /** 
  10.      * @param args 
  11.      */  
  12.     public static void main(String[] args) {  
  13.         // TODO Auto-generated method stub  
  14.         List<String> l1 = new ArrayList<String>();  
  15.         l1.add("a");  
  16.         l1.add("a");  
  17.         l1.add("c");  
  18.         l1.add("c");  
  19.           
  20.         List<String> l2 = new ArrayList<String>();  
  21.         l2.add("b");  
  22.         l2.add("b");  
  23.         l2.add("k");  
  24.         l2.add("k");  
  25.           
  26.         l1.removeAll(l2);//此处指的是将与l2重复的删除  
  27.         l1.addAll(l2);//此处指加上l2  
  28.           
  29.         //如果保证l1,和l2  2个各自的LIST 本身不重复,此行代码不用写。否则会出现合并后LIST重复的问题,具体看业务需要  
  30.         l1 = new ArrayList<String>(new HashSet<>(l1));  
  31.           
  32.         for(String str : l1){  
  33.             System.out.println(str);  
  34.         }  
  35.           
  36.     }  
  37.   
  38. }  


结果:

 

b
c
a
k

 

如果没有

[java] view plain copy
 
  1. l1 = new ArrayList<String>(new HashSet<>(l1));  
[java] view plain copy
 
    1. 则结果为:a  
    2. a  
    3. c  
    4. c  
    5. b  
    6. b  
    7. k  
    8. k  
posted @ 2016-08-24 20:18  鹏鹏进阶  阅读(205)  评论(0编辑  收藏  举报