Java IdentityHashMap与HashMap的区别
IdentityHashMap与HashMap的区别
除了 IdentityHashMap中key可以重合,还有别的区别吗
马赛克V5
9 years, 6 months ago
Answers
-
两者最主要的区别是
IdentityHashMap
使用的是==
比较key的值,而HashMap
使用的是equals()
-
HashMap
使用的是hashCode()
查找位置,IdentityHashMap
使用的是System.identityHashCode(object)
-
IdentityHashMap
理论上来说速度要比HashMap
快一点 -
另外一点呢就是
IdentityHashMap
中key能重复,但需要注意一点的是key比较的方法是==
,所以若要存放两个相同的key,就需要存放不同的地址,下面用代码来说明:import java.util.HashMap; import java.util.IdentityHashMap; import java.util.Map; public class IdentityMapDemo { public static void main(String[] args) { Map identityMap = new IdentityHashMap(); identityMap.put("a", 1); identityMap.put(new String("a"), 2); identityMap.put("a", 3); System.out.println("Identity Map KeySet Size :: " + identityMap.keySet().size()); //输出结果为Identity Map KeySet Size :: 2 } }
只是来看视频的
answered 9 years, 6 months ago