毕向东java上课笔记ArrayListTest2

来源:互联网 发布:美国登月真假 知乎 编辑:程序博客网 时间:2024/06/05 00:42
class Person{    private String name;    private int age;    Person(String name,int age)    {        this.name = name;        this.age = age;    }    /*public boolean equals(Object obj)    {        if(!(obj instanceof Person))            return false;        Person p = (Person)obj;        return this.name.equals(p.name) && this.age == p.age;    }*/    public String getName()    {        return name;    }    public int getAge()    {        return age;    }}class ArrayListTest2 {    public static void sop(Object obj)    {        System.out.println(obj);    }    public static void main(String[] args)     {        ArrayList al = new ArrayList();        al.add(new Person("lisi01",30));        al.add(new Person("lisi02",32));        al.add(new Person("lisi04",35));        al.add(new Person("lisi03",33));        al.add(new Person("lisi04",35));        al = singleElement(al);        Iterator it = al.iterator();        while(it.hasNext())        {            Person p = (Person)it.next();            sop(p.getName()+"::"+p.getAge());        }    }    public static ArrayList singleElement(ArrayList al)    {        //定义一个临时容器。        ArrayList newAl = new ArrayList();        Iterator it = al.iterator();        while(it.hasNext())        {            Object obj = it.next();            if(!newAl.contains(obj))                newAl.add(obj);        }        return newAl;    }}

运行结果:
运行结果

class Person{    private String name;    private int age;    Person(String name,int age)    {        this.name = name;        this.age = age;    }    public boolean equals(Object obj)    {        if(!(obj instanceof Person))            return false;        Person p = (Person)obj;        return this.name.equals(p.name) && this.age == p.age;    }    public String getName()    {        return name;    }    public int getAge()    {        return age;    }}class ArrayListTest2 {    public static void sop(Object obj)    {        System.out.println(obj);    }    public static void main(String[] args)     {        ArrayList al = new ArrayList();        al.add(new Person("lisi01",30));        al.add(new Person("lisi02",32));        al.add(new Person("lisi04",35));        al.add(new Person("lisi03",33));        al.add(new Person("lisi04",35));        al = singleElement(al);        Iterator it = al.iterator();        while(it.hasNext())        {            Person p = (Person)it.next();            sop(p.getName()+"::"+p.getAge());        }    }    public static ArrayList singleElement(ArrayList al)    {        //定义一个临时容器。        ArrayList newAl = new ArrayList();        Iterator it = al.iterator();        while(it.hasNext())        {            Object obj = it.next();            if(!newAl.contains(obj))                newAl.add(obj);        }        return newAl;    }}

运行结果:
运行结果

contains
public boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。更确切地讲,当且仅当此 collection 至少包含一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,返回 true。
总结:List集合判断元素是否相同,依据是元素的equals方法。