为了账号安全,请及时绑定邮箱和手机立即绑定

最新回答 / 慕少3592971
1万的空间和100万差别很大16和100万差别也很大,在100万数据面前,16383的空间和16的并没有什么差别。再加上重复运行相同代码,Java会对优化,可能会更快。所以会造成16的比16384快的可能。

最新回答 / 沪漂程序员
new Integer(value:1)你反馈的这个其实是IDE下的显示,实际代码是new Integer(1)。

最新回答 / Lawrence
你的代码发了看看呗,我这边刚刚试是没问题的

最新回答 / 蒲公英wsg
结点产生的链表长度超过8时, 就会自动转为红黑树。这样做的目的是减少get查找的时间复杂度, 链表的查找时间复杂度为O(n), 红黑树的查找时间复杂度为O(logN)

最新回答 / qq_慕无忌6470534
那个是idea自动缩写了吧,你如果把鼠标移到~上面去,是可以展开的。展开的就是正常的泛型

最新回答 / maxchuan
可能是因为linkedHashMap输出时是按照输入的key顺序输出的,进行排序的这个过程在存入时进行,所以会比较慢吧。

最赞回答 / _dark
实体类不适合作为key,实体类他存储的是引用地址,比较的时候也是引用地址,而不是对象的值,两次new出来的实体,虽然内容一样,但是地址不一样,会作为两个key来存储

最新回答 / qq_Eve小情绪_23806791
创建hashmap对象时如果是无参创建,默认负载因子就是0.75。如果是有参的话,可以自定义大小及负载因子的配置。但是负载因子设置0.75为性能最优。如果要计算负载因子:存储数据的长度/创建hashmap的长度。你要问的是计算实际使用长度吧?如果使用默认长度是16,负载因子默认是0.75.那个可使用长度实际上为16*0.75的长度为12.如果超过长度12就会自动扩容为原长度的2倍为长度32,给之前赋的值再进行hash计算,重新定位。

最新回答 / 高级程序员蒙蒙
他实例化的时候是封装的 Integer,你说的 120 需要自动装箱。直接 new integer 省了一步直接实例化

最赞回答 / botao555
你的理解有偏差, 跟是否产生hash碰撞没关系!! new HashMap(10000, 0.75f)这里的10000指的是map里存的key的数量, map里有个成员变量size来记录的, 不是代表数组大小! 可以看HashMap的put方法的源码, 如果key已存...

最新回答 / 隔壁老杜不风流
不会,老师讲的很明白了,如果不发生碰撞的话,是会扩容,照你的比如,key通过hash取址后只有10000(超过12288才会扩容),未达到16384*0.75=12288,所以是不会扩容的,这是我的理解,如果回答错误还望指正。

最赞回答 / Kevin_Glaser
我是HashMap和LinkedHashMap分开写的,HashMap的赋值取值完毕了再去运行LinkedHashMap的,但是我的赋值是LinkedHashMap快,取值反而LinkedHashMap慢了
课程须知
1、了解Java的基础知识 2、对HashMap有基本的了解和使用 3、适合无论什么情况都使用HashMap的使用者 4、适合想要了解HashMap底层原理及性能分析结果的使用者 5、未使用测试工具,使用编程的方式,分析对比家族成员性能
老师告诉你能学到什么?
1、HashMap的底层原理 2、HashMap是的怎么计算存储位置的 2、使用代码进行性能分析的方法,Map成员的性能对比 3、Map家族成员,不同使用环境下,用哪一个?

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消