如果我更改 HashSet 内的对象会发生什么?

sto*_*r96 4 java equals set hashset

我创建了一个名为 Region 的自己的类,并将 Region 的实例存储在 HashSet 中。我使用 HashSet,列表中没有相等的对象。Region 的字符串名称在 HashSet 中应该是唯一的,因此我重写了 equals 方法。

我的问题:

如果我将两个具有不同名称的区域存储到 HashSet 中,然后使不同的名称相等(通过名称的 setter),会发生什么?

这不是重复的。另一个问题是关于相等的 HashSet,而不是关于 HashSet 中的相等对象。

Lou*_*man 5

如果对象的值以影响等于比较的方式更改,而该对象是集合中的元素,则不会指定集合的​​行为。

-- 设置 Javadoc