首页 > 代码库 > java IdentityHashMap 与HashMap
java IdentityHashMap 与HashMap
这两个map的主要区别在于比较key值的时候:
IdentityHashMap认为当k1 == k2 时key值是一样的
HaspMap认为k1 == null ? k2 == null:k1.equals(k2)时key值是一样的
举个例子:
Integer a = new Integer(123456);
Integer b = new Integer(123456);
HashMap hashMap = new HashMap();
IdentityHashMap identityHashMap = new IdentityHashMap();
hashMap.put(a,1);
hashMap.put(b, 2);
identityHashMap.put(a,1);
identityHashMap.put(b,2);
System.out.println(hashMap);
System.out.println(identityHashMap);
运行结果:
P_LOG: {123456=2}
P_LOG: {123456=1, 123456=2}
总结:
HashMap:会使用equals比较key对象
IdentityHashMap:使用 == 比较key对象
java IdentityHashMap 与HashMap
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。