2013-05-04 53 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...} 

但是沒有你的代碼的其餘部分它很難說,如果這確實是問題。