为什么arraylist.contains()不起作用?

时间:2013-05-04 20:14:14

标签: java arraylist

我有一个ArrayList,我正在填充我打印的东西,以确保我不重复相同的字符串。我使用.contains()方法来检查:

if(!outputted.contains(string)){etc...} 

我在Eclipse上运行调试器仍然打印重复,我看到即使ArrayList确实持有String,它仍然会读取if语句,就好像它没有。我真的很困惑为什么会这样。任何提示或建议将不胜感激。

2 个答案:

答案 0 :(得分:6)

if(!outputted.contains(string)){etc...}

上面的if语句的主体只有在String不在ArrayList中时才会执行。您可能想要做的是尝试相同的if条件,但不要像!那样:

if(outputted.contains(string)){etc...} 

然而,如果没有剩下的代码,很难判断问题是否确实存在。

答案 1 :(得分:2)

  

为什么需要检查包含?

最好使用HashSet

示例代码:

ArrayList arrayList = new ArrayList();
HashSet hashSet = new HashSet();
hashSet.addAll(arrayList);
arrayList.clear();
arrayList.addAll(hashSet);