Java 维护集合中用户定义对象的唯一性时hashCode(),equals()的行为?

Java 维护集合中用户定义对象的唯一性时hashCode(),equals()的行为?,java,data-structures,collections,Java,Data Structures,Collections,在处理希望放弃value对象(用户定义的VO)的重复项的应用程序时,我通过重写hashCode(),equals()方法使用了Set数据结构 我尝试了几次迭代,效果很好,但这里我想了解的是,唯一性实际上是如何保持的?旧对象是被新对象替换还是新对象被忽略 由于它们是相同的,我如何检查上面的内容 根据:[Set.add()]将指定的元素添加到此集合中(如果该元素尚未存在)。如果此集合已经包含元素,则调用将保持集合不变并返回false。因此,请回答您的问题“旧对象是被新对象替换还是新对象被忽略?”根据

在处理希望放弃value对象(用户定义的VO)的重复项的应用程序时,我通过重写hashCode(),equals()方法使用了Set数据结构

我尝试了几次迭代,效果很好,但这里我想了解的是,唯一性实际上是如何保持的?旧对象是被新对象替换还是新对象被忽略

由于它们是相同的,我如何检查上面的内容


根据:[Set.add()]将指定的元素添加到此集合中(如果该元素尚未存在)。如果此集合已经包含元素,则调用将保持集合不变并返回false。因此,请回答您的问题“旧对象是被新对象替换还是新对象被忽略?”根据:[Set.add()]将指定的元素添加到此集合中(如果该元素尚未存在)。如果此集合已经包含元素,则调用将保持集合不变并返回false。所以,请回答您的问题“是旧对象被新对象替换还是新对象被忽略?”新值是否被忽略

哈希集
的情况下,新值是否可能重复不会被插入。取决于您使用哈希集等的实现。如果它们完全相同,是否重要?@kailanjian为了了解引擎盖下发生的情况,这是一个有效的问题。在如果是
HashSet
,则不会插入新值。这取决于您使用HashSet等的实现。如果它们完全相同,这有什么关系?@kailanjian为了理解引擎盖下发生的事情,这是一个有效的问题。