去除ArrayList中姓名和年龄相同的对象
集合元素:
ArrayList list = new ArrayList();
list.add(new Person("张三",23));
list.add(new Person("李四",24));
list.add(new Person("王五",23));
list.add(new Person("张三",23));
list.add(new Person("李四",24));
list.add(new Person("赵六",23));
去除相同元素方法:
public static ArrayList getSingle(ArrayList List){
ArrayList newList = new ArrayList();
Iterator It = List.iterator();
while (It.hasNext()){
Object obj = It.next();
if(!newList.contains(obj)){
newList.add(obj);
}
}
return newList;
}
不重写equals()方法运行结果:
[Person [name=张三, age=23], Person [name=李四, age=24], Person [name=王五, age=23], Person [name=张三, age=23], Person [name=李四, age=24], Person [name=赵六, age=23]]
重写equals()方法结果:
[Person [name=张三, age=23], Person [name=李四, age=24], Person [name=王五, age=23], Person [name=赵六, age=23]]
总结:
contains方法判断是否包含,底层依赖的是equals方法
remove方法判断是否删除,底层依赖的是equals方法