我有一个名为脚本的集。 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中,并且可以确保没有重复的项目。