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條經驗 獲得超7個贊
您得到錯誤的列表,因為您將列表等同于列表。這樣做;
創建一個像 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 數組,您將得到結果。在結果之后,您可以更新您的舊項目,并且您可以執行更多、更多、更多的操作。
如果您有什么不明白的地方,請與我聯系。也許我的英語聽不懂:)
添加回答
舉報
