zoukankan      html  css  js  c++  java
  • 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  
  • 相关阅读:
    Java-列出所有系统属性
    Java-一个数组中的元素复制到另一个数组
    Java-将字符串转为数字
    Java单例模式简单实现
    Spring注解@Component、@Repository、@Service、@Controller
    VisualGDB系列2:VisualGDB对Linux平台的支持特性
    VisualGDB系列1:VisualGDB总体概述
    Docker入门(七):部署app
    Docker入门(六):Stacks
    Docker入门(五):Swarms
  • 原文地址:https://www.cnblogs.com/chengpeng15/p/5804453.html
Copyright © 2011-2022 走看看