我有一个名为脚本的集。 E类具有id,squence等元素。我想比较脚本中对象E的两行,并且仅在id和sequence相同时才删除。我该怎么做。我有一个删除所有行的代码。任何人都可以更正此代码,以仅删除具有id和sequence相同的代码。

        LinkedList<EditorScriptRow> lList = new LinkedList<EditorScriptRow>       (_scriptRows);

     for (ListIterator<EditorScriptRow> i = lList.listIterator(); i.hasNext();) {
           EditorScriptRow row = i.next();
         int k =0;
        for (ListIterator<EditorScriptRow> j = lList.listIterator(k+1) j.hasNext();) {

           EditorScriptRow row1 = j.next();

            if ((row.getTemplateRow().getId() != null) &&
               (row.getSequence() != null) &&
                (row.getEdit().getName() != null) ) {
                if ((row.getSequence().equals(row1.getSequence())) &&
                    (row.getTemplateRow().getId().equals(row1.getTemplateRow  ().getId      ())) &&
                    (row.getEdit().getName().equals(row1.getEdit().getName()))) {
                        _scriptRows.remove(row);
                }
        }
    }
k++;
}

最佳答案

您提到“设置”,但是您的代码使用LinkedList。哪一个?

您可以访问EditorScriptRow类的源代码吗?

如果这样做,则可以覆盖equals方法。
Set接口的约定是,它不得包含“ equals”方法认为相等的两个对象。因此,您可以使用Set的实现(例如HashSet),通过这种方式,您可以将对象添加到Set中,并且可以确保没有重复的项目。

10-02 08:02