我正在努力研究一种算法。我想根据第二个列表中提交的数据对当前列表执行一些操作(更新、删除、添加元素)。
我的第一个列表currentList
和提交的列表submittedList
我要解决的问题是:
- 如果currentList的一个元素在submittedList中,这个元素必须在currentList中更新
- 如果currentList的一个元素不在submittedList中,这个元素必须从currentList中删除
- submittedList中所有不在currentList中的元素都必须添加到currentList中
如果你能帮忙,谢谢
最佳答案
以不同的方式思考这个问题。您需要 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);
关于java - 哪种算法最适合我的列表管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24280989/