List集合判断元素是否相同,依据是元素的equals方法。 
那我想问的是就下面的例子,复写了equals方法后是在哪里用到复写后的equals方法的?? 
 
class Person 
{ 
        private String name; 
        private int age; 
        Person(String name,int age) 
        { 
                this.name=name; 
                this.age=age; 
        } 
        public String getName() 
        { 
                return name; 
        } 
        public int getAge() 
        { 
                return age;         
        } 
        public boolean equals(Object obj) 
        { 
                if(!(obj instanceof Person)) 
                        return false; 
                Person p = (Person)obj; 
 
                return this.name.equals(p.name) && this.age==age; 
        } 
} 
 
class ArryListTest2  
{ 
        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("lisi02",32)); 
                al.add(new Person("lisi03",33)); 
                al.add(new Person("lisi04",35)); 
                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(); 
                        //System.out.println(); 
 
                        if(!newAl.contains(obj)) 
                                newAl.add(obj); 
 
                } 
                return newAl; 
        } 
 
} 
 
 
 |