在 Optional 中包含 hashCode 的目的是什么
What is the purpose of having hashCode in Optional
谁能解释一下为什么 java 人们会覆盖 Optional
中的 hascode
它允许您在 HashSet
中存储 Optional
s(其值类型也覆盖 equals
和 hashCode
)并将它们用作 [=15] 中的键=]s.
如果Optional
没有覆盖equals
和hashCode
,下面的代码将输出2
而不是1
:
Map<Optional<String>,String> map = new HashMap<>();
map.put(Optional.of("someKey"),"someValue");
map.put(Optional.of("someKey"),"someOtherValue");
System.out.println(map.size());
来自 JavaDoc:
Returns the hash code value of the present value, if any, or 0 (zero) if no value is present.
因此您可以检查 Optional 中的对象是否彼此相等。它也与 equals
方法的实现很好地对应。
谁能解释一下为什么 java 人们会覆盖 Optional
hascode
它允许您在 HashSet
中存储 Optional
s(其值类型也覆盖 equals
和 hashCode
)并将它们用作 [=15] 中的键=]s.
如果Optional
没有覆盖equals
和hashCode
,下面的代码将输出2
而不是1
:
Map<Optional<String>,String> map = new HashMap<>();
map.put(Optional.of("someKey"),"someValue");
map.put(Optional.of("someKey"),"someOtherValue");
System.out.println(map.size());
来自 JavaDoc:
Returns the hash code value of the present value, if any, or 0 (zero) if no value is present.
因此您可以检查 Optional 中的对象是否彼此相等。它也与 equals
方法的实现很好地对应。