2013-05-04 56 views
0

我有一个ArrayList,我正在填充的东西,我打印,以确保我不重复相同的字符串。我现在用的。载有()方法来检查:为什么arraylist.contains()不起作用?

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

我跑Eclipse中的调试器,当它还是印刷重复,我看到,即使ArrayList中不牵绳子,它仍然读取if语句就好像它没有。至于为什么会这样,我真的很困惑。任何提示或建议将不胜感激。

+6

请问您可以发布完整的代码吗? – Antimony 2013-05-04 20:15:05

+4

欢迎来到StackOverflow!我们非常感谢努力尝试展示您的代码的简短版本,但这个例子太短了。请阅读[这些指导方针](http://sscce.org/) – durron597 2013-05-04 20:17:04

+3

机会是,你在那里没有相同的字符串两次,你有两个看起来非常相似的字符串。 – GJK 2013-05-04 20:17:07

回答

2

为什么你需要检查包含?

更好的是你可以使用HashSet

示例代码:

ArrayList arrayList = new ArrayList(); 
HashSet hashSet = new HashSet(); 
hashSet.addAll(arrayList); 
arrayList.clear(); 
arrayList.addAll(hashSet); 
6
if(!outputted.contains(string)){etc...} 

if语句的主体如果该字符串不是ArrayList中上述将只执行。你可能想要做的就是尽量相同的,如果条件但没有!像这样:

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

但是没有你的代码的其余部分它很难说,如果这确实是问题。