【发布时间】:2013-06-16 10:59:24
【问题描述】:
我有一个我在屏幕上显示的对象列表。用户可以随意更改它们,然后点击提交。在提交方法中,我将存储的原始列表和当前列表进行比较。我必须创建第三个列表,其中包含使用操作代码添加、删除或更改的所有对象,以指定它是哪一个。对象有一个 id 来识别它们,默认为 0。
我该怎么做?这是我能想到的最好的(伪代码),但看起来很草率。
for (currentObject : objects in current list)
if (currentObject.id is 0)
//Was added
for (oldObject : objects in original list)
if (currentObject.id == oldObject.id)
//Existed - compare other fields to see if changed
for (oldObject1 : objects in original list)
boolean existed = false;
for (currentObject1 : objects in current list)
if(oldObject1.id == currentObject1.id)
existed=true;
if (!existed)
//Was removed
【问题讨论】:
-
对象 ID 是否唯一?
-
如果您的对象 ID 是唯一的,那么在比较它们之前对原始列表和当前列表进行排序可以获得很多好处。
-
@DavidH 对象 id 来自数据库是唯一的。但是在 UI 上添加的所有对象的 id 都是 0。
标签: java algorithm list data-structures