3 回答
TA贡献1809条经验 获得超8个赞
你可以试试这个:
myList.stream().filter(item -> item.equals("C")).collect(Collectors.toList());
由于 list_new 中不存在“D”项,因此 removeAll 无法将其删除。如果您需要检查您的列表是否包含“C”项,您可以这样做:
if(myList.contains("C")){myList = myList.stream().filter(item -> item.equals("C")).collect(Collectors.toList());}
您不需要使用两个列表来删除所有其他项目。
TA贡献1806条经验 获得超5个赞
成功的答案是好的方法,也是困难的方法。因为你不需要得到物品。Android 操作系统总是可以等同于短文本或长文本。
代替:
list_old.removeAll(list_new);
到:
for(String i: new ArrayList<>(list_old)) {
for(String j: new ArrayList<>(list_new)) {
if (!i.equals(j)) {
list_old.add(i);
break;
}
}
}
你会得到正确的结果。
TA贡献1936条经验 获得超6个赞
您得到错误的列表,因为您将列表等同于列表。这样做;
创建一个像 SQLite 一样的 SQLite DBRecentlyHelper。例如:DBOldListItems和DBOldListItems
将所有项目保存到我所说的新数据库中,并将其与项目相等。
旧物品:
A - B - C
新东西:
A - B - C - D
例子:
if(!olditems.get(i).item.equals(newitems.get(i)){
olditems.get(i).item
}
如果, A item 将不等于 newitems 数组,您将得到结果。在结果之后,您可以更新您的旧项目,并且您可以执行更多、更多、更多的操作。
如果您有什么不明白的地方,请与我联系。也许我的英语听不懂:)
添加回答
举报