1

我有一个对象列表,我想删除要删除的重复对象(带有对象属性)。下面的代码第一次运行良好。但是当我再次尝试通过执行相同的代码来删除重复的值时,之前的排序值就会出现。请纠正我代码中的错误。

注意:列表 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);

                            }
                        });
4

1 回答 1

2

一组,每个定义不能包含重复项

对我来说有这个可能的问题

  1. 你的 .clear(); 失败了,你疼吗 mCaseloadsHeads.isEmpty(); 是真的?

  2. 您的比较器失败

如果 ClientName 是一个字符串(参考您的其他帖子,类似这样的内容(返回 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;
                        }
                    });
于 2013-10-11T10:34:25.113 回答