我正在努力使用一种算法。我想在第二个列表中汇总的数据中对当前列表执行一些操作(更新,删除,添加元素)。
我的第一个列表currentList
和提交的列表submittedList
我必须解决的问题是:
如果你能提供帮助,谢谢
答案 0 :(得分:1)
以不同的方式思考。您需要currentList只在submittedList中包含对象,但只需修改对象(如果它在两个列表中都存在)。所以你的算法只有两个步骤。
我的建议是使用临时名单。我在下面添加了一个解决方案,假设列表中的对象是字符串。 (您可以将String替换为自定义对象)
List<String> tempList = new ArrayList<String>();
for(String test : submittedList) {
if(currentList.contains(test)) {
String test1 = test+"xyz"; // do modification to test String
tempList.add(test1);
} else {
tempList.add(test);
}
}
currentList.clear(); // Now add to the actual list after clearing
currentList.addAll(tempList);
答案 1 :(得分:0)
如果可以,请对两个列表进行排序。然后按递增顺序扫描它们:从c
和s
读取第一个元素currentList
和submittedList
。如果c==s
,请更新c
并获取下一个c
和s
;如果c<s
(意味着c
不在submittedList
中),则从c
放弃currentList
并获取下一个c
;如果c>s
(意味着s
不在currentList
中),请在s
中插入currentList
并获取下一个s
。等等。
当其中一个列表用尽时,请继续执行规则c<*
和*>s
。当两个列表都用完时停止。