天天看点

去除List中重复的元素

新版本JDK支持Stream 流去重

首先,去除List集合中重复的元素有两种方式:

方式一:如下

嵌套循环

//去除重复元素方式一:
    @Test
    public void  test5(){
        ArrayList<Object> list = new ArrayList<>();
        list.add(1);
        list.add(3);
        list.add(1);
        list.add(5);
        list.add(6);
        list.add(6);
        list.add(6);
        list.add(6);
        list.add(2);
        list.add(1);
        System.out.println("去重复之前");
        
        for (Object o : list) {
            System.out.print(o+" ");
        }
        for (int i =0 ; i<list.size()-1;i++){
            for(int j =i+1; j<list.size();j++){
                if(list.get(i).equals(list.get(j))){
                    list.remove(i);
                }
            }
        }
        System.out.println("去重复之后");
        for (Object a : list) {
            System.out.print(a+" ");

        }
    }
           

方式二:如下

创建一个临时的集合,用来存储

//去除重复元素方式二:
    @Test
    public void  test6(){
        ArrayList<Object> list = new ArrayList<>();
        list.add(1);
        list.add(3);
        list.add(1);
        list.add(5);
        list.add(6);
        list.add(6);
        list.add(6);
        list.add(6);
        list.add(2);
        list.add(1);
        System.out.println("去重复之前");

        for (Object o : list) {
            System.out.print(o+" ");

        }
        System.out.println();

        ArrayList<Object> temp = new ArrayList<>();
        Iterator<Object> it = list.iterator();
        while (it.hasNext()) {
            Integer str = (Integer) it.next();
            if(!temp.contains(str)){
                temp.add(str);
            }
        }
        System.out.println("去重复之后");
        for (Object a : temp) {
            System.out.print(a+" ");

        }
    }
           

继续阅读