java API原话:此类不是 通用 Map 实现!此类实现 Map 接口时,它有意违反 Map 的常规协定,该协定在比较对象时强制使用 equals 方法。此类设计仅用于其中需要引用相等性语义的罕见情况。也就是1楼说的

解决方案 »

  1.   

    IdentityHashMap的KEY只有在k1==k2时,才认为k1和k2键是相等的,HashMap则只要是k1.equals(k2)就认为键相等. 
      

  2.   

    为什么楼主不去看jdk的帮助文档呢?
      

  3.   

    jdk 文档 原话此类不是 通用 Map 实现!此类实现 Map 接口时,它有意违反 Map 的常规协定,该协定在比较对象时强制使用 equals 方法。此类设计仅用于其中需要引用相等性语义的罕见情况。 
      

  4.   

    IdentityHashMap的KEY只有在k1==k2时,才认为k1和k2键是相等的,HashMap则只要是k1.equals(k2)就认为键相等. 
    //比如:
    父类:animal
    子类:pig
    父类对象: A
    子类对象: P
    则A!=P,但是A.equals(P)返回true////////有些不确定了哈~~~~