【JAVA基础】IdentityHashMap初步了解

来源:互联网 发布:淘宝直通车黑车技术 编辑:程序博客网 时间:2024/05/11 19:49

简单说IdentityHashMap与常用的HashMap的区别是:前者比较key时是“引用相等”而后者是“对象相等”,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。

IdentityHashMap有其特殊用途,比如序列化或者深度复制。或者记录对象代理。

举个例子,jvm中的所有对象都是独一无二的,哪怕两个对象是同一个class的对象,而且两个对象的数据完全相同,对于jvm来说,他们也是完全不同的,如果要用一个map来记录这样jvm中的对象,你就需要用IdentityHashMap,而不能使用其他Map实现。

0 0
原创粉丝点击