我有一個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