复习ArrayList集合
ArrayList<Object> list=new Arraylist<Object>();
list.add(element);
list.get(index);
list.remove(index);
Iterator it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
注:ListIterator 是Iterator的子接口。
ListIterator 可增删改查取;
Iterator 只可删查取。
练习:将自定义对象作为元素存在ArrayList集合中,并除去相同元素。例如,存人对象,同名并且同年龄视为同一人。
思路:在Person类中重写equals方法,然后通过contains方法两两比较Person实例,把实例存到list中。最后返回list打印结果。
Person类:
public class Person {
private String name;
private int age;
Person(String n,int a)
{
this.name=n;
this.age=a;
}
public String getname()
{
return this.name;
}
public int getage()
{
return this.age;
}
public boolean equals(Object o)
{
if(o instanceof Person)
{
Person oo=(Person)o;
// System.out.println(oo.getname());
return this.name.equals(oo.getname())&&this.age==oo.age;
}
else
return false;
}
}
import java.util.ArrayList;
import java.util.Iterator;
public class compareClass {
public static void main(String[] args) {
ArrayList<Person> list=new ArrayList<Person>();
list.add(new Person("小米",10));
list.add(new Person("小米",10));
list.add(new Person("小米",10));
list.add(new Person("魅族",30));
list.add(new Person("小米",20));
list.add(new Person("小米",10));
list=singleElement(list);//调用方法,判断同人。
Iterator<Person> it=list.iterator();
while(it.hasNext()){
Person p=it.next();
System.out.print(p.getname()+" ");
System.out.println(p.getage());
}
}
public static ArrayList<Person> singleElement(ArrayList<Person> list)
{
ArrayList<Person> l=new ArrayList<Person>();
Iterator<Person> it=list.iterator();
while(it.hasNext())
{
Person p=it.next();
if(!l.contains(p))//用到equals方法。
{
l.add(p);
}
else
continue;
}
return l;
}
}
运行结果:
小米 10
魅族 30
小米 20
以上只是存人对象,没有判断存其他对象。