0

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

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

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

4

2 回答 2

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

上面 if 语句的主体只会在字符串不在 ArrayList 中时执行。您可能想要做的是尝试相同的 if 条件但没有!类似的情况:

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

但是,如果没有其余代码,很难判断这是否真的是问题所在。

于 2013-05-04T20:26:17.463 回答
2

为什么需要检查包含?

更好的是你可以使用HashSet.

示例代码:

ArrayList arrayList = new ArrayList();
HashSet hashSet = new HashSet();
hashSet.addAll(arrayList);
arrayList.clear();
arrayList.addAll(hashSet);
于 2013-05-04T20:18:14.870 回答