aur*_*anr 1 java generics equals hashcode linkedhashset
我有以下对象集合:
Set<MyClass> test = new LinkedHashSet<MyClass>();
Run Code Online (Sandbox Code Playgroud)
但MyClass不会覆盖hashcode和equals方法.
上面的集合只能有唯一的对象,即使MyClass没有覆盖hashCode和equals方法吗?
默认实现equals是检查身份(即使用==运算符).您LinkedHashSet(或任何其他HashSet,对于该情况)将包含唯一对象,因为您将无法两次添加相同的对象.但是,如果以完全相同的方式创建两个实例(例如,将相同的参数传递给构造函数),则您的集合仍将包含它们,因为它们不是equals.