import java.util.*;
class Person
{
private String name;
private int age;
Person(){};
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public boolean equals(Object obj) //重写Peron的equals方法 比较对象的name与age
{
if(!(obj instanceof Person))
return false;
Person p=(Person)obj;
return this.name.equals(p.name) && this.age==p.age;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge(){
return age;}
}
public class Demo4
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add(new Person("hongkun01",10));
al.add(new Person("hongkun01",11));
al.add(new Person("hongkun02",12));
al.add(new Person("hongkun02",12));
al.add(new Person("hongkun03",13));
al=singleElement(al);
Iterator it=al.iterator(); //迭代输出al中元素的姓名和年龄
while(it.hasNext())
{
Person p=(Person)it.next();
sop(p.getName()+" "+p.getAge());
}
}
public static ArrayList singleElement(ArrayList al) //去除al集合中重复的元素并且返回
{
ArrayList al2=new ArrayList();
Iterator it=al.iterator();
while(it.hasNext())
{
Object obj=it.next();
if(!al2.contains(obj)) //contains方法底层调用的是equals方法 所以需要重写Person类中的equals方法
al2.add(obj);
}
return al2;
}
}
2
import java.util.*;
class Demo3
{
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add(new Worker("张三",19,3000));
al.add(new Worker("李四",18,3500));
al.add(new Worker("王五",20,2000));
al.add(2,new Worker("找一",98,10000));
al.remove(3);
for(int i=0;i<3;i++)
{
Worker w=(Worker)al.get(i);
sop(w.getName()+"..."+w.getAge()+"..."+w.getWages());
}
Iterator it=al.iterator();
while(it.hasNext())
{
Worker w=(Worker)it.next();
sop(w.getName()+"..."+w.getAge()+"..."+w.getWages());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class Worker
{
private String name;
private int age;
private int wages;
Worker(String name,int age,int wages)
{
this.name=name;
this.age=age;
this.wages=wages;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public int getWages()
{
return wages;
}
public boolean equals(Worker w)
{
if(this.name==w.name && this.age==w.age && this.wages==w.wages)
{
return true;
}
return false;
}
}