package cn.bqd.Practice;
import java.util.ArrayList;
import java.util.Iterator;
/**
 * 将自定义对象存到集合中,并去除重复元素
 * 
 * 比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。
 * 
 * 思路:
 *1,对人描述,将数据封装进人对象。
 *2,定义容器,将人存入。
 *3,取出。
 *
 * List集合判断元素是否相同,依据是元素的equals方法。
 * @author Administrator
 *
 */
class person{
private String name;
private int age;
person(String name,int age){
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;
}
//重写Object中equals方法
public boolean equals(Object obj){//这个equals()是person类中的equals()
if(!(obj instanceof person)){
return true;
}
person p=(person)obj;
return this.name.equals(p.name)&&this.age==p.age;//这个equals()是String类中的equals()方法,,因为name是字符串,所以可以调用equals()方法
}
}public class ArrayListTest2 {
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add(new person("zhangsan1",12));//Object obj=new person();
al.add(new person("zhangsan2",12));
al.add(new person("zhangsan2",12));
al.add(new person("zhangsan3",15));
al.add(new person("zhangsan1",12));
al=show(al);
Iterator it=al.iterator();
while(it.hasNext()){
person p=(person)it.next();
System.out.println(p.getName()+"...."+p.getAge());
}
}
public static ArrayList show(ArrayList al){
//定义一个临时容器
ArrayList newa=new ArrayList();
//定义一个迭代器,进行遍历原ArrayList
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(!newa.contains(obj)){
newa.add(obj);
}
}
return newa;
}
}