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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张丽 中级黑马   /  2012-10-7 15:48  /  1626 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

该题目是去除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;
   }
  }
        
}

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
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;
   }
  }
        
}

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼上正解·····
回复 使用道具 举报
OK,需要迭代的是list集合中的元素。
回复 使用道具 举报
嗯,2楼是正解.
回复 使用道具 举报
听老师说可以通过 Set 去重
但是我表示没有成功过
真正求解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马