Java 如果我更改哈希集中的对象会发生什么?

Java 如果我更改哈希集中的对象会发生什么?,java,set,equals,hashset,Java,Set,Equals,Hashset,我自己创建了一个名为Region的类,并将Region的实例存储在HashSet中。我使用HashSet,即列表中没有相等的对象。区域的字符串名称在HashSet中应该是唯一的,因此我重写了equals方法 我的问题: 如果我将两个具有不同名称的区域存储到HashSet中,然后使不同的名称相等(通过名称的setter),会发生什么情况 这不是重复的。另一个问题是关于相等的哈希集,而不是哈希集中的相等对象 当对象是集合中的元素时,如果对象的值以影响相等比较的方式更改,则不会指定集合的行为 --设置

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

我的问题:

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

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

当对象是集合中的元素时,如果对象的值以影响相等比较的方式更改,则不会指定集合的行为


--设置Javadoc时发生了什么?未定义的行为。不要那样做。阅读这里的第一条“注意事项”:“如果……”你知道你可以这样做并看到正确的结果吗?相关:@takendark我不认为这是一种可以“尝试并看到”的事情。也许如果他改变了名字,什么也不会马上发生,但是未来的一些手术可能会失败,但不一定会失败,手术医生也不知道该尝试哪种手术。大多数“如果发生了什么”的问题都可以用你的方式解决,但不是全部。