IdentityHashMap vs HashMap

一隻積累鴨發表於2020-10-11

IdentityHashMap判斷key是否相等的方式:

if (item == k)

ashMap判斷key是否相等的方式:

if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k))))
String a = new String("123");
String b = new String("123");
HashMap hashMap = new HashMap();
hashMap.put(a, 1);
hashMap.put(b, 2);
System.out.println(hashMap);

IdentityHashMap identityHashMap = new IdentityHashMap();
identityHashMap.put(a, 1);
identityHashMap.put(b, 2);
System.out.println(identityHashMap);

執行的結果是:

{123=2}
{123=1, 123=2}

相關文章