Java集合中对象的可变字段
我正确地假设,如果你有一个包含在
Java集合& (或作为关于该事物的地图中的键),用于确定身份或关系(通过hashCode(),equals(),compareTo()等)的任何字段不能改变,而不会导致未指定的行为收集操作? (编辑:在
this other question提到)
(换句话说,这些字段应该是不可变的,或者你应该要求对象从集合中删除,然后被改变,然后重新插入.) 我问的原因是我正在阅读Hibernate Annotations reference guide,它有一个例子,那里有一个HashSet&玩具>但玩具类的字段名称和序列是可变的,也用于hashCode()计算…一个红色的旗帜在我的头脑里,我只是想确保我明白它的含义. 解决方法
集合的javadoc说
这只是意味着您可以在一个集合中使用可变对象,甚至可以更改它们.您只需确保更改不会影响Set找到项目的方式.对于HashSet,这不需要更改用于计算hashCode()的字段. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |