去除重复ArrayList中的元素或对象

去除ArrayList的重复元素(如String):

    public static ArrayList getSingle(ArrayList arrayList) {
        ArrayList newList=new ArrayList();              //创建新集合
        Iterator iterator=arrayList.iterator();         //获取原集合的迭代器
        while(iterator.hasNext()){                      //遍历原集合
            Object obj=iterator.next();
            if(!newList.contains(obj)){                 //若不存在,则加入新集合
                newList.add(obj);
            }
        }
        return newList;
    }

去除ArrayList中属性相同的对象:(contains)

只需要在对象类中重写equals方法,因为Arraylist的list.contains(Object obj)方法在底层是依赖的Object类的equals方法,比较的是地址值。重写之后让equals方法比较对象的属性值即可。

public boolean equals(Object obj){
        Person p=(Person)obj;
        return this.name.equals(p.name) && this.age.== p.age
}

同时list.remove(Object obj)方法也是依赖的equals方法。

猜你喜欢

转载自blog.csdn.net/weixin_42547717/article/details/83550629