我的代码如下:- import java.util.*;
- class Student
- {
- private String name;
- private int age;
- Student(String name,int age)
- {
- this.name=name;
- this.age=age;
- }
- public boolean equals(Object obj)//覆写Object中的equals方法
- {
- if(!(obj instanceof Student))
- return false;
-
- Student s=(Student)obj;
- System.out.println(this.name+"...equals"+s.name);
-
- return this.name.equals(s.name) && this.age==s.age;//判断name和age是否相同,都相同则为真,表明为同一个人。
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
-
- }
- class ListTest_1
- {
- public static void main(String[] args)
- {
- ArrayList al=new ArrayList();
- al.add(new Student("sunyan1",20));
- al.add(new Student("sunyan2",21));
- al.add(new Student("sunyan1",20));
-
- al=singleArr(al);
- Iterator it=al.iterator();
- while(it.hasNext())
- {
- Student s=(Student)it.next();
- System.out.println(s.getName()+":::"+s.getAge());
- }
- }
- public static ArrayList singleArr(ArrayList al)
- {
- ArrayList newAl=new ArrayList();
- Iterator me=newAl.iterator();
- while(me.hasNext())
- {
- Object obj=me.next();
- if(!(newAl.contains(obj)))
- {
- newAl.add(obj);
- }
- }
- return newAl;
- }
- public static void method(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码
问题1: 当调用了al=singleArr(al);时,输出结果时没有任何结果。而没有调用时却会输出结果。
问题2:输出结果显示Student类并没有自动调用其覆写的equals方法,因此也没有起到去重的功能。 |