2013-02-19 29 views
1

我有一个arrayList,我想知道新添加的项目是否已经在列表中。如何检查该项目是否在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)); 

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

+0

如果你不想在你的列表中有重复,也许你可以把它改成'Set'。 – Atropo 2013-02-19 08:23:20

+0

标题中的问题是如何检查一个项目是否在ArrayList中。问题中的问题是“为什么ArrayList中的最后一项是空的?”。我们应该关注哪个问题? – 2013-02-19 08:36:23

+0

列表上的每个项目都为空,但大小是正确的。 – 2013-02-19 08:41:08

回答

1

尝试这样: -

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

if(arrayListItemEntries.contains(itemEntryAdded)) 此输出始终为false。我不知道为什么。 – 2013-02-19 08:33:41

+0

这意味着,所有'itemEntryAdded'都是新的,并且不在'arrayListItemEntries' – SudoRahul 2013-02-19 08:37:34

+0

中,但是arraylist的大小是正确的,但是arraylist上的所有项都是null。 – 2013-02-19 08:40:18

0

只需使用contains(item)方法。

0

什么是你的名单大小?你在哪里添加项目到这个列表?

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

你也可以尝试使用Set,它不允许重复,因此你不需要检查。

+0

设置?如何使用SET? – 2013-02-19 08:34:05

相关问题