没有覆盖 hashCode() 和 equals() 的对象上的 LinkedHashSet

LinkedHashSet on objects without overridden hashCode() and equals()

我有以下对象集合:

Set<MyClass> test = new LinkedHashSet<MyClass>();

MyClass 不会覆盖 hashcodeequals 方法。

即使 MyClass 不覆盖 hashCodeequals 方法,上面的集合也可以只有唯一对象吗?

equals 的默认实现是检查身份(即使用 == 运算符)。您的 LinkedHashSet(或任何其他 HashSet,在这种情况下)将包含独特的对象,您将无法两次添加相同的对象。但是,如果您以完全相同的方式创建两个实例(例如,将相同的参数传递给构造函数),您的集合仍将包含它们,因为它们不是 equals.