/**
将自定义的对象作为元素存入ArrayList集合中,并去除重复元素
比如:存人对象.把同名同年龄的视为同一对象,是重复元素
*/
import java.util.*;
class ArrayListTest3
{
public static void main(String[] args)
{
Person p0=new Person("gekui",22);
Person p1=new Person("gekui",22);
Person p2=new Person("gekui",22);
Person p3=new Person("gekui",23);
Person p4=new Person("wf",22);
Person p5=new Person("gekui",22);
亲..你没有理解我的意思啊 我的意思是把一个集合中的重复的元素删除
定义一个新的集合,把重复集合中的元素往里面加 判断如果新集合中已经存在了 就不需要再加了
结果是打印出来
Person p0=new Person("gekui",22);
Person p3=new Person("gekui",23);
Person p4=new Person("wf",22);它们三的地址值作者: 刘勇军 时间: 2012-7-5 13:33
定义类的时候要复写toString方法,做比较需要复写equals方法,你用!=只是比较的对象的地址值而已,因为Person是你NEW出来的,虽然内容相同,但都新开辟内存地址。复写equals方法来比较里面内容作者: 李伟 时间: 2012-7-5 14:04
import java.util.*;
class ArrayListTest3
{
public static void main(String[] args)
{
Person p0=new Person("gekui",22);
Person p1=new Person("gekui",22);
Person p2=new Person("gekui",22);
Person p3=new Person("gekui",23);
Person p4=new Person("wf",22);
Person p5=new Person("gekui",22);
ArrayList al=new ArrayList();
al.add(p0);
al.add(p1);
al.add(p2);
al.add(p3);
al.add(p4);
al.add(p5);
sop(removeSameP(al));
}
public static ArrayList removeSameP(ArrayList al)
{ for(int i=0;i<al.size();i++)//用双重循环遍历的方式删除相同元素
{
for(int j=i+1;j<al.size();j++)
{
Person p=(Person)al.get(i);
Person pp=(Person)al.get(j);
if((p.getName()==pp.getName())&&(p.getAge()==pp.getAge()))
al.remove(j--);
}
}
return al;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void setAge(int age)
{
this.age=age;
}
public void setName(String name)
{
this.name=name;
}
public int getAge()
{
return this.age;
}
public String getName()
{
return this.name;
}
public String toString()//复写toSting()
{
return name+","+age+" ";
}
肯定是removeSameP()逻辑有问题,你的本意是 先给新的ArrayList一个初始值,然后双循环遍历,如果老的ArrayList中的元素对应的属性和新的ArrayList里的初始元素对应的属性不相同,就存入一个元素。这里我感觉这样比较是不是错了,完全可以把person当做一个整体进行比较,这里只是调用比较方法呢?作者: 万宝东 时间: 2012-7-5 14:33
import java.util.*;
class ArrayListTest3
{
public static void main(String[] args)
{
Person p0=new Person("gekui",22);
Person p1=new Person("gekui",22);
Person p2=new Person("gekui",22);
Person p3=new Person("gekui",23);
Person p4=new Person("wf",22);
Person p5=new Person("gekui",22);
public static void main(String[] args)
{
Person p0=new Person("gekui",22);
Person p1=new Person("gekui",22);
Person p2=new Person("gekui",22);
Person p3=new Person("gekui",23);
Person p4=new Person("wf",22);
Person p5=new Person("gekui",22);