黑马程序员技术交流社区

标题: ArrayList集合框架问题 [打印本页]

作者: 张丽    时间: 2012-10-7 15:48
标题: ArrayList集合框架问题
该题目是去除ArrayList集合中的重复元素
我运行的没有结果。这个程序不知道哪里出错了,
纠结啊。
package zhangli1;
import java.util.ArrayList;
import java.util.Iterator;
import zhangli1.bean.Person;
public class ArrayListDelectDemo {
   public static ArrayList getSingleElements(ArrayList list){
    ArrayList temp=new ArrayList();
    Iterator it=temp.iterator();
    while(it.hasNext()){
     Object obj=it.next();
     if(!temp.contains(obj)){
      temp.add(obj);
     }
    }
    return temp;
   
   }



public static void main(String[] args) {
  // TODO Auto-generated method stub
      Person p1=new Person("lisi1",21);
         Person p2=new Person("lisi2",22);
         Person p3=new Person("lisi3",23);
         Person p4=new Person("lisi4",24);
         Person p5=new Person("lisi3",23);
         ArrayList list=new ArrayList();
         list.add(p1);
         list.add(p2);
         list.add(p3);
         list.add(p4);
         list.add(p5);
         
         list=getSingleElements(list);
         Iterator it=list.iterator();
         while(it.hasNext()){
              Object obj=it.next();
              Person p=(Person)obj;
              System.out.println(p.getName()+"::"+p.getAge());
         }
      
   
}
}
package zhangli1.bean;
public class Person {
        private String name;
        private int age;
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public int getAge() {
   return age;
  }
  public void setAge(int age) {
   this.age = age;
  }
  public Person(String name, int age) {
   super();
   this.name = name;
   this.age = age;
  }
  public String toString()
  {
   return this.toString();
  }
  public boolean equals(Object obj){
   if(this==obj){
    return true;
   }
   if(!(obj instanceof Person))throw new ClassCastException("类型转换错误");
   {
    Person p=(Person)obj;
    return this.name.equals(p.name)&&this.age==p.age;
   }
  }
        
}


作者: 黄小贝    时间: 2012-10-7 15:58
package zhangli1;
import java.util.ArrayList;
import java.util.Iterator;
import zhangli1.bean.Person;
public class ArrayListDelectDemo {
   public static ArrayList getSingleElements(ArrayList list){
    ArrayList temp=new ArrayList();
    Iterator it=list.iterator();
    while(it.hasNext()){
     Object obj=it.next();
     if(!temp.contains(obj)){
      temp.add(obj);
     }
    }
    return temp;
   
   }



public static void main(String[] args) {
  // TODO Auto-generated method stub
      Person p1=new Person("lisi1",21);
         Person p2=new Person("lisi2",22);
         Person p3=new Person("lisi3",23);
         Person p4=new Person("lisi4",24);
         Person p5=new Person("lisi3",23);
         ArrayList list=new ArrayList();
         list.add(p1);
         list.add(p2);
         list.add(p3);
         list.add(p4);
         list.add(p5);
         
         list=getSingleElements(list);
         Iterator it=list.iterator();
         while(it.hasNext()){
              Object obj=it.next();
              Person p=(Person)obj;
              System.out.println(p.getName()+"::"+p.getAge());
         }
      
   
}
}
package zhangli1.bean;
public class Person {
        private String name;
        private int age;
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public int getAge() {
   return age;
  }
  public void setAge(int age) {
   this.age = age;
  }
  public Person(String name, int age) {
   super();
   this.name = name;
   this.age = age;
  }
  public String toString()
  {
   return this.toString();
  }
  public boolean equals(Object obj){
   if(this==obj){
    return true;
   }
   if(!(obj instanceof Person))throw new ClassCastException("类型转换错误");
   {
    Person p=(Person)obj;
    return this.name.equals(p.name)&&this.age==p.age;
   }
  }
        
}

作者: 沈佳龙    时间: 2012-10-7 16:06
楼上正解·····
作者: 张丽    时间: 2012-10-7 16:11
OK,需要迭代的是list集合中的元素。
作者: AngieFans85    时间: 2012-10-7 16:21
嗯,2楼是正解.
作者: 唐增友    时间: 2012-10-7 23:13
听老师说可以通过 Set 去重
但是我表示没有成功过
真正求解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2