A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 坏男孩 中级黑马   /  2014-7-30 01:39  /  1684 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.*;

  2. /*
  3. 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。

  4. 比如:存人对象。同姓名同年龄,视为同一个人,为重复元素。

  5. 思路:
  6. 1,对人描述,将数据封装进人对象。
  7. 2,定义容器,将人存入。
  8. 3,取出。

  9. */

  10. class Person
  11. {
  12.         private String name;
  13.         private int age;
  14.         Person(String naem,int age)
  15.         {
  16.                 this.name = name;
  17.                 this.age = age;
  18.         }
  19.         public boolean equals(Object obj)
  20.         {
  21.                 if(!(obj instanceof Person))
  22.                         return false;

  23.                 Person p = (Person)obj;

  24.                 return this.name.equals(p.name) && this.age == p.age;
  25.         }
  26.         public String getName()
  27.         {
  28.                 return name;
  29.         }
  30.         public int getAge()
  31.         {
  32.                 return age;
  33.         }
  34. }

  35. class ArrayListTest2
  36. {
  37.         public static void sop(Object obj)
  38.         {
  39.                 System.out.println(obj);
  40.         }
  41.         public static void main(String[] args)
  42.         {
  43.                 ArrayList al = new ArrayList();
  44.                 al.add(new Person("lisi01",30));
  45.                 al.add(new Person("lisi02",32));
  46.                 al.add(new Person("lisi02",32));
  47.                 al.add(new Person("lisi03",33));
  48.                 al.add(new Person("lisi04",35));
  49.                 al.add(new Person("lisi04",35));


  50.                 al = singleElement(al);

  51.                 Iterator it = al.iterator();

  52.                 while(it.hasNext())
  53.                 {
  54.                         Person p = (Person)it.next();
  55.                         sop(p.getName()+"::"+p.getAge());
  56.                 }
  57.         }

  58.         public static ArrayList singleElement(ArrayList al)
  59.         {
  60.                 //定义一个临时容器。
  61.                 ArrayList newAl = new ArrayList();

  62.                 Iterator it = al.iterator();

  63.                 while(it.hasNext())
  64.                 {
  65.                         Object obj = it.next();

  66.                         if(!newAl.contains(obj))
  67.                                 newAl.add(obj);
  68.                 }
  69.                
  70.                 return newAl;
  71.         }
  72. }
复制代码


)_XVW`(Z{(K]9TIQS49HJC6.jpg (58.41 KB, 下载次数: 51)

运行异常

运行异常

4 个回复

倒序浏览
        Person(String naem,int age)
        {
                this.name = name;
                this.age = age;
        }
回复 使用道具 举报
发现异常,先抛了再说,回头在看
回复 使用道具 举报
空指针异常的原因是因为引用类型变量没有指向对象。你这里的原因主要是
Person(String naem,int age)
        {
                this.name = name;
                this.age = age;
        }
回复 使用道具 举报
黎志勇 发表于 2014-7-30 07:01
Person(String naem,int age)
        {
                this.name = name;

噢噢,谢了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马