我有一个对象列表我想要删除要删除的重复对象(使用对象属性)。以下代码第一次正常工作。但是当我再次尝试通过执行相同的代码来删除重复值时,先前的排序值会出现。请纠正我代码中的错误。
注意:列表mCaseloadsHeads是在我的班级
中公开定义的 //Getting the values from the web service
mCaseloadsHeads = parsedXML.getCaseLoadValues("get_Caseload_ClientServiceGroupID", param);
Iterator<Caseload> iterator = mCaseloadsHeads.iterator();
while (iterator.hasNext()) {
removeDuplicateClientName.add(iterator.next());
}
mCaseloadsHeads.clear();
mCaseloadsHeads.addAll(removeDuplicateClientName);
SortedSet<Caseload> removeDuplicateClientName = new TreeSet<Caseload>(
new Comparator<Caseload>() {
@Override
public int compare(Caseload caseload0, Caseload caseload1) {
return caseload0.ClientName.compareTo(caseload1.ClientName);
}
});
答案 0 :(得分:2)
一个集合,不能按照定义保留重复
对我来说,这可能有问题
你的.clear();失败,你是不是感到疼痛mCaseloadsHeads.isEmpty();是真的吗?
您的比较器失败
如果ClientName是一个字符串(引用你的另一个post,就像这样(返回0表示它们相等)
SortedSet<Caseload> removeDuplicateClientName = new TreeSet<Caseload>(
new Comparator<Caseload>() {
@Override
public int compare(Caseload caseload0, Caseload caseload1) {
return caseload0.ClientName.equals(caseload1.ClientName) ? 0 : 1;
}
});