课程
/后端开发
/Java
/Map从入门到性能分析
代码核对过跟演示的是一样的,我这个跑了很多次,都是linkedMap耗时更长,重点是每次都是这样的,截图了几张,大家帮忙看看什么问题吧
2020-06-14
源自:Map从入门到性能分析 4-1
正在回答
我在查找资料以后才明白,HashMap底层的代码是数组+链表,后来成了红黑树,但是LinkedHashMap的底层代码是双向链表,就是说查找遍历时候,不管数据多少,都应该是HashMap比LinkedHashMap快一些,就好比 1 <=> 2 <=> 3 <=> 4 <=> 5 <=> 6 <=> 7 <=> 8 <=> 9......这样的双链结构,找到9需要走九次,但是树就不一样了。
Kevin_Glaser
我是HashMap和LinkedHashMap分开写的,HashMap的赋值取值完毕了再去运行LinkedHashMap的,但是我的赋值是LinkedHashMap快,取值反而LinkedHashMap慢了
值不要用一样的
按演示代码继续,后面的取值耗时上,linkedMap耗时就短些了,
只是如上图赋值的耗时这块我的代码演示的还是linkedMap耗时更久
举报
拒绝HaspMap一条道走到黑,带你选择最合适的Map
1 回答感觉速度相差不大呢?甚至调成100万1000万测试发现反倒不如默认16的速度呢?时代进步了还是我代码写错了?
1 回答HashMap实例化写法
4 回答new HashMap(10000,0.75f) 是说hash值不碰撞的情况下吧
1 回答使用putIfAbsent时value的数据类型不能为Integer的原因
2 回答现在最新的如果发生碰撞的话 好像不光是链表了吧?