IdentityHashMap vs HashMap

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}

你可能感兴趣的:(学习,hashmap,IdentityHashMap,java,hash)