1、首先针对集合中的对象要重写hashcode()和equals()方法;这是因为retainAll()和removeAll()会去利用对象的这两个方法来比较对象是否是同一个对象;
2、举个例子
public class persone{
private int id;
private String sex;
private String name;
//set get方法
//重写hashcode方法
@Override
public int hashCode(){
return this.id;
}
public Boolean equals(Object obj){
if(!(obj instanceof Person)){
Person person = (Person)obj
return thid.id = person.id
}
}
}
3、说明:上面的例子是根据对象中的id来判断两个对象是否相等,当然也可以根据多个对象;
4、之后可以对比两个对象如:
Person p1 = new Person();
Person p2 = new Person();
p1.retainAll(p2);//交集的结果为p1
p1.removeAll(p2);//差集为p1