以下是正确的代码:
import java.util.*;
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 Arraylist3
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add(new Person("zhangsan1",30));
al.add(new Person("zhangsan2",36));
al.add(new Person("zhangsan1",30));
al.add(new Person("zhangsan3",35));
sop(al);
al=qcf(al);
sop(al);
}
public static ArrayList qcf(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;
}
}
你代码的主要错误就是:
创建匿名对象的时候,构造函数传参有错误,两个参数之间用 ,分隔符进行分开。
以后注意点,就不会出现这个错误了。
希望对您有帮助。 |