这种情况如何与ArrayList一起使用?

时间:2018-09-09 20:00:03

标签: java android android-studio

这种情况确实有所不同,我想做到,但我找不到解决方法。我的情况是这样的:

我有一个ArrayList,而这个ArrayList总是用新的更新。请这样想。

LIST ONE是我的目标列表。我在此列表中有这些项目:

A 乙 C

我在首次启动时两次保存了此列表:list_old_one-list_new_one

几分钟后,出现了带有旧物品的新物品。

A 乙 C D

我还要保存此列表:list_new_one

我想做这个。如果list_one_now中不存在 C ,我只想显示此内容,并且我想删除所有其他项目,而只显示 C ,而不用 D

我对equalremoveAll部分感到厌倦,还对 D 项感到厌倦,因为它不相等。

我的ArrayList:

TinyDB tinydb = new TinyDB(getApplicationContext());

//Adding current list to new one
tinydb.remove("list_new_one");
tinydb.putListString("list_new_one", all_list);

ArrayList<String> list_old = new ArrayList<>(tinydb.getListString("list_old_one"));
ArrayList<String> list_new = new ArrayList<>(tinydb.getListString("list_new_one"));

   list_old.removeAll(list_new);
   if (list_new.size() != 0) {
        //Adding results to database
        DBRecentlyHelper dbRecentlyHelper = new DBRecentlyHelper(getApplicationContext());
        dbRecentlyHelper.RecentlyADD(list_old, current_user);
        dbRecentlyHelper.close();

       //Updating old list
       tinydb.remove("list_old_one");
       tinydb.putListString("list_old_one", all_list);
  }else{
       //Updating old list
       tinydb.remove("list_old_one");
       tinydb.putListString("list_old_one", all_list);
  }

我真的要在一个星期内看病,但仍然得到错误的结果。

如果有人有想法,我会很高兴的。 非常感谢。

2 个答案:

答案 0 :(得分:0)

您得到错误的列表,因为您将列表与列表相等。这样做吧!

创建一个类似SQLite DBRecentlyHelper的SQLite。例如:DBOldListItemsDBOldListItems

将我所说的所有项目都保存到新数据库中,并将项目与项目相等。

旧项目:

A - B - C

新项目:

A - B - C - D

示例:

if(!olditems.get(i).item.equals(newitems.get(i)){
    olditems.get(i).item
}

如果A项与newitems数组不相等,则将得到结果。获得结果之后,您可以更新旧项目,并且可以做更多,更多,更多。

如果您听不懂任何内容,请与我联系。也许我的英语听不懂:)

答案 1 :(得分:0)

成功的答案是好方法,但也很难。因为您不需要获取物品。 Android OS始终可以等于短文本或长文本。

替换:

{ user { investor { details { photos { id key }}}}}

收件人:

list_old.removeAll(list_new);

您将获得正确的结果。