将自定义对象作为元素存到ArrayList集合中,并去除重复元素;
 比如:存人对象,同姓名,同年龄,视为同一个人。为重复元素。
class Person{
	private String name;
	private int 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;
	}
	
	Person(String name,int age){
		this.name=name;
		this.age=age;
	}
	public boolean equals(Object obj){    //因为所有类都继承或间接继承了Object类,在Person类中重写了Object类中的equals方法。告诉它该如何进行是否重复的判断。
		if(!(obj instanceof Person)){
			return false;
		}
		Person p=(Person)obj;
		return this.name.equals(p.name)&&this.age==p.age;
	}
}
public class Quchuchongfa {
	public static void main(String[] args) {
		ArrayList a=new ArrayList();
		a.add(new Person("mingzi01",10));
		a.add(new Person("mingzi02",11));
		a.add(new Person("mingzi02",11));
		a.add(new Person("mingzi03",12));
		a.add(new Person("mingzi03",12));
		a.add(new Person("mingzi04",13));
				
		a=fangfa(a);  //接收进行判断后的ArrayList。
		for(Iterator b=a.iterator();b.hasNext();){
			Person y=(Person) b.next();
System.out.pringtln(y.getName()+y.getAge());
		}
	}
	public static ArrayList fangfa(ArrayList a){    //写判断是否重复的内部静态方法。
			ArrayList b=new ArrayList();
			for(Iterator t=a.iterator();t.hasNext();){
				Object c=t.next();
				if(!(b.contains(c))){b.add(c);}    //此处contains调用了被重写的equals方法。
			}
			return b;      //返回进行判断后的ArrayList。
		}
原文:https://www.cnblogs.com/shenhengjia/p/9026976.html