你的代码我写了一次,并且在你注释那回答一下你的问题!
/*
*Person类
*/
public class Person {
private int age;
private String name;
Person(String name, int age) {
this.name = name;
this.age = age;
}
/*
*重写equals方法,此处的equals的是Person类中的方法
*主要功能: List集合判断元素是否相同,依据是元素的equals方法。
*/
//布尔型覆盖父类中的object的equals方法
public boolean equals(Object obj)
public boolean equals(Object obj) {
if (!(obj instanceof Person))
return false;
Person p = (Person) obj;
//此处equals方法是字符串中的方法,字符串可以调用equals方法
return this.name.equals(p.name) && this.age == p.age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
以下是Test测试类
public static void main(String[] args) {
ArrayList a = new ArrayList();
a.add(new Person("lisi01",21));
a.add(new Person("lisi02",22));
a.add(new Person("lisi03",23));
a.add(new Person("lisi03",23));
a.add(new Person("lisi04",24));
a.add(new Person("lisi05",24));
//singleelement(a); 这个方法,就是去掉重复的元素,然后返回给a
a = singleElement(a);
Iterator i = a.iterator();
while(i.hasNext()){
Person p =(Person)i.next();
sop(p.getName()+"::"+p.getAge());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
public static ArrayList singleElement(ArrayList a)
{
ArrayList A = new ArrayList();
Iterator<String> i =a.iterator();
while(i.hasNext())
{
Object obj = i.next();
if(!A.contains(obj))
A.add(obj);
}
return A;
}
}
|