我有一个ArrayList,我正在填充的东西,我打印,以确保我不重复相同的字符串。我现在用的。载有()方法来检查:为什么arraylist.contains()不起作用?
if(!outputted.contains(string)){etc...}
我跑Eclipse中的调试器,当它还是印刷重复,我看到,即使ArrayList中不牵绳子,它仍然读取if语句就好像它没有。至于为什么会这样,我真的很困惑。任何提示或建议将不胜感激。
我有一个ArrayList,我正在填充的东西,我打印,以确保我不重复相同的字符串。我现在用的。载有()方法来检查:为什么arraylist.contains()不起作用?
if(!outputted.contains(string)){etc...}
我跑Eclipse中的调试器,当它还是印刷重复,我看到,即使ArrayList中不牵绳子,它仍然读取if语句就好像它没有。至于为什么会这样,我真的很困惑。任何提示或建议将不胜感激。
为什么你需要检查包含?
更好的是你可以使用HashSet
。
示例代码:
ArrayList arrayList = new ArrayList();
HashSet hashSet = new HashSet();
hashSet.addAll(arrayList);
arrayList.clear();
arrayList.addAll(hashSet);
if(!outputted.contains(string)){etc...}
if语句的主体如果该字符串不是ArrayList中上述将只执行。你可能想要做的就是尽量相同的,如果条件但没有!
像这样:
if(outputted.contains(string)){etc...}
但是没有你的代码的其余部分它很难说,如果这确实是问题。
请问您可以发布完整的代码吗? – Antimony 2013-05-04 20:15:05
欢迎来到StackOverflow!我们非常感谢努力尝试展示您的代码的简短版本,但这个例子太短了。请阅读[这些指导方针](http://sscce.org/) – durron597 2013-05-04 20:17:04
机会是,你在那里没有相同的字符串两次,你有两个看起来非常相似的字符串。 – GJK 2013-05-04 20:17:07