导航

List集合去重

Posted on 2018-02-05 11:38  耍流氓的兔兔  阅读(273)  评论(0编辑  收藏  举报

 

本篇包含了两种去重,一种是List集合去重,一种是两个List集合去重合并

  List集合去重,一般是两种方式,一种是遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合

  参考链接:http://blog.csdn.net/cs6704/article/details/50158373

 

一个List去重:

public static void main(String[] args) {
        
        List<String> list1 = new ArrayList<String>();
        list1.add("111");
        list1.add("222");
        list1.add("111");
        list1.add("222");
        
        System.out.println("list1:" + list1);
        
        Set set = new  HashSet(); 
        List newList = new  ArrayList(); 
        for (String str : list1) {
           if(set.add(str)){
               newList.add(str);
           }
       }
        System.out.println("去重后的list集合:" + newList);
    }
list1:[111, 222, 111, 222]
去重后的list集合:[111, 222]
    public static void main(String[] args) {

        List<String> list1 = new ArrayList<String>();
        list1.add("111");
        list1.add("222");
        list1.add("111");
        list1.add("222");

        System.out.println("list1:" + list1);

        List<String> newList = new  ArrayList<String>(); 
        for (String str : list1) {
            if(!newList.contains(str)){
                newList.add(str);
            }
        }

        System.out.println("去重后的list集合:" + newList);
    }
list1:[111, 222, 111, 222]
去重后的list集合:[111, 222]
    public static void main(String[] args) {

        List<String> list1 = new ArrayList<String>();
        list1.add("111");
        list1.add("222");
        list1.add("111");
        list1.add("222");

        System.out.println("list1:" + list1);

        Set set = new  HashSet(); 
        List newList = new  ArrayList(); 
        set.addAll(list1);
        newList.addAll(set);

        System.out.println("去重后的list集合:" + newList);
    }
list1:[111, 222, 111, 222]
去重后的list集合:[111, 222]
    public static void main(String[] args) {

        List<String> list1 = new ArrayList<String>();
        list1.add("111");
        list1.add("222");
        list1.add("111");
        list1.add("222");

        System.out.println("list1:" + list1);

        List newList = new ArrayList(new HashSet(list1)); 

        System.out.println("去重后的list集合:" + newList);
    }
list1:[111, 222, 111, 222]
去重后的list集合:[111, 222]

 

两个List集合去重合并:

public static void main(String[] args) {
        
        List<String> list1 = new ArrayList<String>();
        list1.add("111");
        list1.add("222");
        list1.add("333");
        list1.add("444");
        
        List<String> list2 = new ArrayList<String>();
        list2.add("01");
        list2.add("02");
        list2.add("03");
        list2.add("04");
        list2.add("111");
        list2.add("222");
        list2.add("555");
        list2.add("666");
        
        System.out.println("list1:" + list1);
        System.out.println("list2:" + list2);
        
        list1.remove(list2);
        list1.addAll(list2);
        
        list1 = new ArrayList<String>(new HashSet<>(list1));
        System.out.println("去重后的list集合:" + list1);
    }
list1:[111, 222, 333, 444]
list2:[01, 02, 03, 04, 111, 222, 555, 666]
去重后的list集合:[01, 02, 03, 04, 111, 222, 333, 444, 555, 666]