自定义类:
/*
* 自定义对象Person类
*/
public class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Override
public boolean equals(Object obj) {//重写equals方法
Person per = (Person) obj;
if (per.getName().equals(this.name) && per.getAge() == this.age) {
return true;
}
return false;
}
}
/*
* 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
* 思路: 重写equals()方法
*/
//方式一:
import java.util.ArrayList;
import java.util.ListIterator;
import com.heima.bean.Person;
/*
* 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
* 思路: 重写equals()方法
*/
public class Demo2_ArrayList {
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 23));
list.add(new Person("李四", 24));
list.add(new Person("王五", 25));
list.add(new Person("赵六", 26));
list.add(new Person("张三", 23));
list.add(new Person("李四", 24));
list.add(new Person("赵六", 26));
System.out.println(getSingle(list));
}
public static ArrayList<Person> getSingle(ArrayList<Person> list) {
ArrayList<Person> newArrayList = new ArrayList<Person>();
ListIterator<Person> iter = list.listIterator();
while (iter.hasNext()) {
Person per = (Person) iter.next();
if (!newArrayList.contains(per)) {//contains方法判断是否包含,底层依赖equals方法
newArrayList.add(per); //remove方法判断是否删除,底层依赖的也是equals方法
}
}
return newArrayList;
}
}