我正在檢查是否有mylist
包含給定的物體或不是,其中mylist
是myCustomClass
類型的ArrayList
。myArralist.contains(obj)總是返回false,雖然myArraylist在java中包含指定的obj?
-1
A
回答
3
如果添加的MyCustomClass
實例的列表,然後檢查是否包含MyCustomClass
又例如,將始終返回false,除非你重寫你的自定義類equals
方法。 equals方法檢查另一個對象是否在功能上等於這個對象。
確保在每次重寫equals方法時覆蓋hashCode
方法。 hashCode
應該爲兩個相等的對象返回相同的值。另外,等於應該寫成對稱:a.equals(b)
當且僅當b.equals(a)
。
檢查javadoc of java.lang.Object
中的equals和hashCode。
+0
謝謝@ berry120,@ Jesper我重寫equals(obj)方法,它對我來說工作正常 –
1
您很有可能沒有實施equals()
和hashcode()
在myCustomClass
。您需要正確執行並根據合同執行,詳情請參閱here。
相關問題
- 1. 在Android中,爲什麼ArrayList.contains(obj)總是返回false?
- 2. 爲什麼在JavaScript中:obj = new Boolean(false),(obj && true)是true,(obj || false)是false?
- 3. 在Java中,何時「obj instanceof Object」爲false?
- 4. COM OBJ錯誤:雖然DTC配置
- 5. Session.save(obj)返回零
- 6. 是Java jackson ObjectWriter.ObjectWriter.writeValueAsString(obj);穩定?
- 7. 包含在返回false
- 8. 雖然返回類型(&值)指定
- 9. 安卓:使用翻新雖然我的代碼總是返回false
- 10. 使用string.matches的正則表達式總是返回false雖然我期待真
- 11. intersectObjects不從OBJMTLLoader返回obj
- 12. Nhibernate iesicollection包含返回false
- 13. 如何檢查一個jQuery的obj是否包含另一個jQuery的obj?
- 14. 用於stmt的JUnit測試用例if(obj == null)返回false;
- 15. 當obj是函數時,「obj中的鍵」?
- 16. Assembly.GlobalAssemblyCache返回FALSE,雖然程序集是從GAC加載的
- 17. CLONE_PTRACE雖然sched.h中包含
- 18. 'is_authenticated'仍然總是在模板中返回false
- 19. User.Suspended總是在octokit.net中返回false
- 20. isset()在php中總是返回false
- 21. Request.IsAjaxRequest()總是返回false
- 22. VisualStateManager.GoToState總是返回false
- 23. HttpContext.Current.User.IsInRole(roleName)總是返回false
- 24. NUnit AreEqual總是返回false
- 25. array_key_exists總是返回false
- 26. SmsMessage.isEmail()總是返回false
- 27. db_affected_rows()總是返回false
- 28. Facebook isValidRedirect總是返回false
- 29. XMLAttribute總是返回false
- 30. ini_set()總是返回false
向我們展示代碼.. – Bozho
檢查此問題http://stackoverflow.com/questions/2642589/how-does-a-java-arraylist-contains-method-evaluate-objects –