去除重複ArrayList中的元素或物件
阿新 • • 發佈:2018-11-11
去除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方法。