什么时候会调用 AbstractSet 的 equal 和 hashcode 方法?
When will equal and hashcode methods of AbstractSet get called?
AbstractSet 的 equal() 和 hashcode() 方法什么时候调用?
AbstractSet 中的这些方法有什么用?
AbstractSet 的 equals 和 hashcode 方法将被任何不覆盖它们的 AbstractSet 的子class 继承。当将该集合用作集合或映射中的元素时,它们会被调用。
这些方法使用包含的元素来确定这个集合是否等于另一个集合。 JDK subclasses EnumSet, HashSet, and TreeSet 使用这些 equals 和 hashCode 的实现,API 文档将它们列在 Methods inherited from class java.util.AbstractSet.
我通过尝试示例示例找到了 hashcode() 问题的答案。
当您在 hashmap 中添加 set 元素作为键时,将调用 hashcode() 方法
例如:
Set<String
> set = new HashSet<String
>();
set.add("A");
set.add("B");
Map<Set<
String>,String
> m = new HashMap<Set<
String>,String
>();
m.put(设置,"B");
将调试点放在 AbstractSet 的 hashcode() 方法中,它将被调用。
AbstractSet 的 equal() 和 hashcode() 方法什么时候调用? AbstractSet 中的这些方法有什么用?
AbstractSet 的 equals 和 hashcode 方法将被任何不覆盖它们的 AbstractSet 的子class 继承。当将该集合用作集合或映射中的元素时,它们会被调用。
这些方法使用包含的元素来确定这个集合是否等于另一个集合。 JDK subclasses EnumSet, HashSet, and TreeSet 使用这些 equals 和 hashCode 的实现,API 文档将它们列在 Methods inherited from class java.util.AbstractSet.
我通过尝试示例示例找到了 hashcode() 问题的答案。 当您在 hashmap 中添加 set 元素作为键时,将调用 hashcode() 方法 例如:
Set<String
> set = new HashSet<String
>();
set.add("A");
set.add("B");
Map<Set<
String>,String
> m = new HashMap<Set<
String>,String
>();
m.put(设置,"B");
将调试点放在 AbstractSet 的 hashcode() 方法中,它将被调用。