Java 使用对象';重写hashCode()和equals()实现后

Java 使用对象';重写hashCode()和equals()实现后,java,dictionary,overriding,equals,hashcode,Java,Dictionary,Overriding,Equals,Hashcode,假设我有: public class A { @Override public int hashCode() { // some expensive calculation } @Override public boolean equals(Object obj) { // some expensive calculation } } 在我的代码中的某一点上,我希望使用对象的hashCode()和equals()

假设我有:

public class A {
    @Override
    public int hashCode() {
        // some expensive calculation
    }

    @Override
    public boolean equals(Object obj) {
        // some expensive calculation
    }
}
在我的代码中的某一点上,我希望使用对象的hashCode()和equals()实现(即,当且仅当类型a的两个键引用同一个对象时,才认为它们相等),得到一个以a作为键类型的映射


最好的方法是什么?

您可以在实例化时重写方法

A a = new A(){
  @Override
  public int hashCode() {
    return System.identityHashCode(this);
  }
};

或者使用
IdentityHashMap
使用
系统。identityHashCode

使用@markspace Perfect,谢谢!!