【问题标题】:How can I check if that item is on the arrayList?如何检查该项目是否在 arrayList 上?
【发布时间】:2013-02-03 20:33:57
【问题描述】:

我有一个arrayList,我想知道新添加的项目是否已经在列表中。

    protected void onPostExecute(Void result1) {
            //TODO Auto-generated method stub
            super.onPostExecute(result1);
            progressBar.dismiss();

            if(status == 1) {   
                //arrayListItemEntries.add(itemEntryAdded);
                System.out.println(itemEntryAdded);
                System.out.println(arrayListItemEntries.get(arrayListItemEntries.size()-1));
                arrayListNewItems.add(itemEntryAdded);
                adapterItem.notifyDataSetChanged();
                toastMsg = "Item " + description +" is added on the list";                  
            }
            else
            {
                toastMsg ="Item not Found";
            }
            makeToast(toastMsg);
        }

    }

上线,

 System.out.println(arrayListItemEntries.get(arrayListItemEntries.size()-1));

它输出null,为什么?当我想输出列表大小时,它是正确的。

【问题讨论】:

  • 如果您不想在列表中出现重复项,您可以将其更改为 Set
  • 标题中的问题是如何检查一个item是否在ArrayList中。问题中的问题是“为什么 ArrayList 中的最后一项为空?”。我们应该注意哪个问题?
  • 列表中的每一项都是空的,但大小是正确的。

标签: android listview arraylist


【解决方案1】:

试试这样的:-

if(arrayListItemEntries.contains(itemEntryAdded))
        // do nothing - already there in list
else
        arrayListItemEntries.add(itemEntryAdded);

【讨论】:

  • if(arrayListItemEntries.contains(itemEntryAdded)) 这个输出总是假的。我不知道为什么。
  • 这意味着,所有itemEntryAdded 都是新的,并且还没有出现在arrayListItemEntries
  • 但是,arraylist的大小是正确的,但是arraylist上的所有项目都是空的。
  • 那么您添加到arrayListItemEntriesitemEntryAdded 可能是null。因此,一切都是null
【解决方案2】:

只需使用contains(item) 方法。

【讨论】:

    【解决方案3】:

    您的列表大小是多少?您在哪里添加项目到此列表?

    通常我们使用.contains(Object) 方法来检查特定对象的存在。

    您也可以尝试使用不允许重复的Set,因此您无需检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      相关资源
      最近更新 更多