学习:消除集合中重复元素

传送门:list、map、set的区别

消除集合中重复元素,根本考差点即list与set的区别。
简单点说:list 代表有索引编号的集合,可以存放重复的对象,可以在指定的位置插入对象。set存放不重复的对象,只能有一个null元素。

知道两者的区别,就可以利用Set不允许重复值的特点,消除集合中的重复元素。

例:

1.利用ArrayList去除集合中重复字符串元素


        ArrayList list = new ArrayList();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.add("aa");
        list.add("bb");

       ArrayList newList = getSingle(list);
        System.out.println(newList);
    /*
    创建一个新的集合,存放去除重复元素后的元素。

      分析:1,创建新集合
         2,根据传入的旧集合获取迭代器
         3,遍历旧集合
         4,通过新集合判断是是否包含旧集合中的元素,如果包含,就不添加,否则才添加
    */
    public static ArrayList getSingle(ArrayList list){
            ArrayList newList = new ArrayList();     //创建新集合
            Iterator it = list.iterator();        //根据传入的集合旧集合获取迭代器
            while(it.hasNext()){          //遍历旧集合
            Object obj = it.next();       //记录每一个元素
            if(!newList.contains(obj)){   //如果新集合中不包含旧集合中的元素,则添加
            newList.add(obj);       
            }
        }
        return newList;//返回的集合即去掉重复元素后的集合
    }

2.利用Set去除集合中重复字符串元素

ArrayList list = new ArrayList();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.add("aa");
        list.add("bb");
        System.out.println("旧集合:"+list);
        Set set = new HashSet(list);
        List newList = new ArrayList(set);
        System.out.println("新集合"+newList);

对比可见,set集合在实例化时可直接传递list参数。相比较利用arraylist遍历每一个元素,更加方便。

猜你喜欢

转载自blog.csdn.net/qq_35206244/article/details/81198185