IdentityHashMap

之前很少用到IdentityHashMap,

 

簡單說IdentityHashMap與常用的HashMap的區別是:前者比較key時是“引用相等”而後者是“對象相等”,即對於k1和k2,當k1==k2時,IdentityHashMap認爲兩個key相等,而HashMap只有在k1.equals(k2) == true 時纔會認爲兩個key相等。

 

IdentityHashMap有其特殊用途,比如序列化或者深度複製。或者記錄對象代理。

 

舉個例子,jvm中的所有對象都是獨一無二的,哪怕兩個對象是同一個class的對象,而且兩個對象的數據完全相同,對於jvm來說,他們也是完全不同的,如果要用一個map來記錄這樣jvm中的對象,你就需要用IdentityHashMap,而不能使用其他Map實現。

 

關於IdentityHashMap的完整參考信息,參見:http://docs.oracle.com/javase/6/docs/api/java/util/IdentityHashMap.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章