似乎许多类(例如HashSet)假设hashCode对象的内容不会改变.该文件是明确的关系是什么equals和hashCode应该的.
但实现一个hashCode在对象的生命周期内改变的设计是否很差?
至少需要在hashCode被冻结的应用程序中指出它在关注的集合中.通常,hashCode将在您构建对象时更改(例如,添加到ArrayList),然后将其添加到集合并停止更改.之后,如果您从集合中删除它,您可以再次改变它.我想说通常最好的做法是使用不可变的数据结构(ala String或你自己的类型一直有韵母)和依赖hashCode的集合(例如,HashMap键或HashSet).
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |