去除ArrayList重复的对象

Posted Saber本

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了去除ArrayList重复的对象相关的知识,希望对你有一定的参考价值。

将自定义对象作为元素存到ArrayList集合中,并去除重复元素;
 比如:存人对象,同姓名,同年龄,视为同一个人。为重复元素。

class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

Person(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){    //因为所有类都继承或间接继承了Object类,在Person类中重写了Object类中的equals方法。告诉它该如何进行是否重复的判断。
if(!(obj instanceof Person)){
return false;
}
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
}

public class Quchuchongfa {

public static void main(String[] args) {

ArrayList a=new ArrayList();
a.add(new Person("mingzi01",10));
a.add(new Person("mingzi02",11));
a.add(new Person("mingzi02",11));
a.add(new Person("mingzi03",12));
a.add(new Person("mingzi03",12));
a.add(new Person("mingzi04",13));

a=fangfa(a);  //接收进行判断后的ArrayList。


for(Iterator b=a.iterator();b.hasNext();){
Person y=(Person) b.next();
System.out.pringtln(y.getName()+y.getAge());
}

}
public static ArrayList fangfa(ArrayList a){    //写判断是否重复的内部静态方法。
ArrayList b=new ArrayList();
for(Iterator t=a.iterator();t.hasNext();){
Object c=t.next();
if(!(b.contains(c))){b.add(c);}    //此处contains调用了被重写的equals方法。
}
return b;      //返回进行判断后的ArrayList。
}

以上是关于去除ArrayList重复的对象的主要内容,如果未能解决你的问题,请参考以下文章

Java 中ArrayList<Object>如何去除其中重复的对象

2017.4.20 ArrayList去除重复对象

ArrayList去除集合中字符串的重复值,只能在本集合内操作

java-ArrayList中去重复字符串或重复对象LinkedList集合泛型增强for静态导入可变参数asList()方法集合嵌套

2019-05-25 Java学习日记之List集合

去除ArrayList集合中重复字符串元素方式_思路:创建新集合方式