1

我有以下对象集合:

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

MyClass不会覆盖hashcodeandequals方法。

即使 MyClass 不覆盖hashCodeandequals方法,上述集合是否也只能是唯一的对象?

4

1 回答 1

6

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

于 2015-09-05T15:46:20.597 回答