让ArralList集合具备判重功能。去除重复元素

来源:互联网 发布:敏捷网络功能 编辑:程序博客网 时间:2024/05/22 01:31
/**让ArralList集合具备判重功能。将自定义对象作为元素,存储到ArrayList集合中,并去除相同元素。同姓名和同年龄视为同一个人。为重复元素。思路:三大块1,对人进行描述,姓名,年龄,将数据封装到人对象中2,自定义容器将人存入3,从集合中取出*/import java.util.*;class  ArrayListDemo {public static void main(String[] args) {//创建对象,添加元素。将Person的实例对象作为参数传递给addArrayList<Person> al=new ArrayList<Person>();al.add(new Person("lisi01",30));al.add(new Person("lisi02",20));al.add(new Person("lisi03",18));al.add(new Person("lisi04",42));al.add(new Person("lisi03",18));al=singleElement(al);//迭代ArrayList集合,元素为Person对象Iterator<Person> it=al.iterator();while (it.hasNext()){Person p=(Person)it.next();//强转System.out.println(p.getName()+":"+p.getAge());}}//定义一个临时比较器。public static ArrayList singleElement(ArrayList al){ArrayList newAl=new ArrayList();Iterator it=al.iterator();while (it.hasNext()){Object obj=it.next();if (!newAl.contains(obj)){newAl.add(obj);}}return newAl;}}class Person{private String name;private int age;Person(String name,int age){this.name=name;this.age=age;}public boolean equals(Object obj){if (!(obj instanceof Person))return false;//throw new ClassCastException("不是同类型,不能比较。");Person p=(Person)obj;return this.name.equals(p.name)&&this.age==p.age;}public void setName(String name){this.name=name;}public void setAge(int age){this.age=age;}public String getName(){return name;}public int getAge(){return age;}}

0 0