兩個集合當中相同的對象內容一致卻無法移除的原因是因爲兩者的id或者hashcode不一致導致的,我自己的解決方法是在實體類上重寫hashcode()方法和equals()方法,然後removeall()就可以了。
public class Page {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
int hash = 0;
if (!StringUtil.isEmpty(getId())) {
hash += 21 * getId().hashCode();
}
if (!StringUtil.isEmpty(getName())) {
hash += 21 * getName().hashCode();
}
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Page)) {
return false;
}
Pagetar = (Page) obj;
if (!StringUtil.isEmpty(this.getId())) {
if (!this.getId().equals(tar.getId())) {
return false;
}
}
if (!StringUtil.isEmpty(this.getName())) {
if (!this.getName().equals(tar.getName())) {
return false;
}
}
return true;
}
}