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

© 不怕黑人 中级黑马   /  2015-7-24 14:59  /  150 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /**
  2. * 题目:判断含有人(具有姓名,年龄属性)的ArrayList是否有重复元素。
  3. * 思路:对人进行描述,定义容器,取出。
  4. * 总结:List集合判断元素是否相同,依据的是元素的equals方法。
  5. *@author XiaLei
  6. */
  7. public class Day14Test7 {

  8.         public static void main(String[] args) {

  9.                 Person p1 = new Person("zhan01",2);
  10.                 Person p2 = new Person("zhan02",2);
  11.                 Person p3 = new Person("zhan01",3);
  12.                 Person p4 = new Person("zhan01",2);
  13.                 ArrayList<Person> al = new ArrayList<Person>();
  14.                 al.add(p1);
  15.                 al.add(p2);
  16.                 al.add(p3);
  17.                 al.add(p4);
  18.                 System.out.println(beDefferent(al));
  19.                
  20.         }
  21.         public static <Object> ArrayList beDefferent(ArrayList<Object> al){
  22.                 ArrayList alt = new ArrayList();
  23.                 ListIterator li = al.listIterator();
  24.                 while(li.hasNext()){//迭代循环中,next一次就要判断一次hasNext。
  25.                         Object obj = (Object) li.next();
  26.                         if(!alt.contains(obj)){//contains底层调用equals方法。另外remove方法也是调用equals的。
  27.                                 alt.add(obj);
  28.                         }
  29.                 }
  30.                 return alt;
  31.         }
  32. }
  33. class Person{
  34.         private String name;
  35.         private int age;
  36.         public Person(String name, int age) {
  37.                 super();
  38.                 this.name = name;
  39.                 this.age = age;
  40.         }
  41.         public boolean equals(Object obj){
  42.                 //复写equals方法。
  43.                 if(!(obj instanceof Person))
  44.                         return false;
  45.                 Person p =(Person)obj;
  46.                 return this.name.equals(p.name) &&this.age == p.age;
  47.         }
  48.         public String toString(){
  49.                 return "name="+this.name+"  age="+this.age;
  50.         }
  51. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马