热心网友
回答时间:2024-05-16 15:20
/**
将自定义的对象作为元素存入ArrayList集合中,并去除重复元素
比如:存人对象.把同名同年龄的视为同一对象,是重复元素
*/
import java.util.*;
class test {
public static void main(String[] args) {
Person p0 = new Person("gekui", 22);
Person p1 = new Person("gekui", 22);
Person p2 = new Person("gekui", 22);
Person p3 = new Person("gekui", 23);
Person p4 = new Person("wf", 22);
Person p5 = new Person("gekui", 22);
ArrayList<Person> al = new ArrayList<Person>();
al.add(p0);
al.add(p1);
al.add(p2);
al.add(p3);
al.add(p4);
al.add(p5);
sop(al);
sop(removeSameP(al));
}
public static List removeSameP(ArrayList<Person> al) {
ArrayList newAl = new ArrayList();
HashMap<String,Person> map=new HashMap<String,Person>();
for (int i = 0; i < al.size(); i++) {
Person p=map.get(al.get(i).getName()+al.get(i).getAge());
if(p ==null){
map.put(al.get(i).getName()+al.get(i).getAge(), al.get(i));
newAl.add(al.get(i));
}
}
return newAl;
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
收起