请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,请教几个问题。谢谢!

1.异或问题
if ((p = tab[i = (n - 1) & hash]) == null)
原值与后 为什么又进行了一次异或,源码上面只进行到原值与后?
2.有初始容量的HashMap和没有初始容量的HashMap
图片描述
2-1.没有初始值的HashMap随着put数量增加耗时随着增加,他相对于有初始值的额外耗时消耗在哪里?
2-2.有初始值的构造方法多计算一个threshold,没有的构造方法只有一个loadFactor,但是没有初始值的HashMap put在resize()的时候会去获取默认的配置构建threshold。这个时候没有初始值的HashMap是否和有初始值的HashMap一致了?
还望老师与知道的师兄指教一下。!!

正在回答 回答被采纳积分+3

插入代码

1回答

城南大师兄 2019-05-18 17:48:47

1 异或?没看明白问题

2-1  有初始值和无初始值从目前的源码来看效率没有太大区别;因为实际table的大小都是在resize中进行扩展的,而并非构造函数

2-2 在赋值有初始化的构造函数,仅仅也是赋值,其table初始值也为2的倍数;比如如果初始值为12,那么仅仅改变的threshold,并没有太大区别;


谢谢您的提问!

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号