将自定义对象作为元素存到ArrayList集合中,并去除重复元素

来源:互联网 发布:合金装备5连接网络 编辑:程序博客网 时间:2024/05/16 05:14
/* * 程序头部注释开始   * 程序的版权和版本声明部分   * Copyright (c) 2011, 烟台大学计算机学院学生   * All rights reserved.   * 文件名称:将自定义对象作为元素存到ArrayList集合中,并去除重复元素                           * 作    者:薛广晨                               * 完成日期:2012  年 10 月  16  日   * 版 本号:x1.0               * 对任务及求解方法的描述部分   * 输入描述:  * 问题描述: 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。            比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。            思路:1,对人描述,将数据封装进人对象。2,定义容器,将人存入。3,取出。* 程序输出:   * 程序头部的注释结束 */import java.util.*;class Person{private String name;private int age;public Person(String name, int age){this.name = name;this.age = age;}public String getName(){return this.name;}public int getAge(){return this.age;}public void setName(String name){this.name = name;}public void setName(int age){this.age = age;}public boolean equals(Object obj)//重写equals方法{if(!(obj instanceof Person)){return false;}Person p = (Person)obj;return this.name.equals(p.name) && this.age == p.age;}}class ArrayListTest2 {public static void main(String[] args) {ArrayList al = new ArrayList();al.add(new Person("lisi01",20));al.add(new Person("lisi02",21));al.add(new Person("lisi04",22));al.add(new Person("lisi03",23));al.add(new Person("lisi02",21));al.add(new Person("lisi04",22));sop("原集合:");for(Iterator it = al.iterator(); it.hasNext();){Person p = (Person) it.next();sop("name:" + p.getName() + " :: age:" + p.getAge());}        al = singleElement(al);sop("新集合:");for(Iterator it = al.iterator(); it.hasNext();){Person p = (Person) it.next();sop("name:" + p.getName() + " :: age:" + p.getAge());}}public static ArrayList singleElement(ArrayList al){ArrayList newAl = new ArrayList();for(Iterator it = al.iterator(); it.hasNext();){Object obj = it.next();if(!newAl.contains(obj)){newAl.add(obj);}}return newAl;}public static void sop(Object obj){System.out.println(obj);}}

运行结果:


原创粉丝点击