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