4
A
回答
7
一个问题是,如果将其添加到Collection中后,其将在之后发生更改,您将无法在HashSet或HashMap中找到该对象(如果该对象是Map中的键)。
在对象的生命周期中更改equals
的结果可能会导致某些集合被打破。例如,您可能会发现在您的Set中有重复的对象,因为当第二个对象被添加到Set时,它们不相等。
相关问题
- 1. Overrding equals和hashCode
- 2. Map HashCode和Equals
- 3. 忽略equals()和hashCode()在Java中
- 4. Google App Engine,JDO和equals/hashCode
- 5. 什么是重写equals()和hashCode()的POJO?
- 6. 如何实现hashCode和equals方法
- 7. 重写的hashCode()和equals()方法
- 8. 重写hashCode()和equals()的Java HashMap不会返回任何数据
- 9. 为什么Collection接口有equals()和hashCode()?
- 10. SCJP hashCode()和equals()方法混淆
- 11. 在Eclipse中调试equals()和hashCode()
- 12. toString,hashcode和equals方法内部接口
- 13. 何时覆盖hashcode和equals方法在java中
- 14. Java - TreeSet和hashCode()
- 15. Java的两个Set对象 - hashCode()是相同的,但.equals()失败
- 16. 在Idea的“Generate ...”中自定义equals/hashCode
- 17. Java:.contains和.equals
- 18. ==和java中的.equals()
- 19. hashcode碰撞会影响Java中的equals吗?
- 20. Intellij插件生成getter/setter,hashcode/equals,toString
- 21. HashMap的不正确的equals和hashCode实现
- 22. LinkedHashSet的对象,而无需重写的hashCode()和equals()
- 23. 在Java中重写hashCode()时应该重写'equals'(Object)方法吗?
- 24. 这个声明对重写hashcode和equals有什么意义?
- 25. 应该如何equals和hashCode使用JPA时和Hibernate
- 26. 我的equals和hashcode是否必须基于compareTo方法实现?
- 27. hashCode()和equals()重写实际上是如何工作的?
- 28. 重写HashMap实现的equals()和hashCode()方法
- 29. equals和hashCode的泛型反射助手方法
- 30. 使用自然键作为equals和hashCode的一部分
可能重复[在Java中重写equals和hashCode时应考虑哪些问题?](http://stackoverflow.com/questions/27581/what-issues-should-be-considered-when-overriding-equals- and-hashcode-in-java) – Dave 2015-01-31 19:30:44
你可能最终会遇到一些内存泄漏 – rodrigoalves 2015-01-31 19:32:04
只要这两种方法之间的契约没有被破坏,就应该没问题。当您修改对象的状态时,预计会更改结果。 – 2015-01-31 19:32:15