1. 程式人生 > >ArrayList中去除重複資料,以及去除重複的自定義物件

ArrayList中去除重複資料,以及去除重複的自定義物件

去掉重複資料思路:建立一個新集合,遍歷舊的集合,不包含就新增

private ArrayList getList(List arr) {

        List list = new ArrayList();

        Iterator it = arr.iterator();

        while (it.hasNext()) {

            Object obj = (Object) it.next();

            if(!list.contains(obj)){                //不包含就新增

                list.add(obj);
            }
        }
        return (ArrayList) list;


已經去掉了重複的資料,這個方法用在去掉重複的自定義的物件的時候是不起作用的。

我自定義了一個學生的物件,裡面有name和age屬性。如圖:


問題出現在 contains()。進入原始碼會發現它是用父類object的equals()方法:


所以解決去除重複的自定義物件的時候,需要在自定義的物件中重寫equals方法


再次列印輸出: