我有一个ArrayList,我正在填充我打印的东西,以确保我不重复相同的字符串。我使用.contains()方法来检查:
if(!outputted.contains(string)){etc...}
我在Eclipse上运行调试器仍然打印重复,我看到即使ArrayList确实持有String,它仍然会读取if语句,就好像它没有。我真的很困惑为什么会这样。任何提示或建议将不胜感激。
答案 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);