1. 程式人生 > >去除重複ArrayList中的元素或物件

去除重複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方法。