最新回答 / qq_Eve小情绪_23806791
创建hashmap对象时如果是无参创建,默认负载因子就是0.75。如果是有参的话,可以自定义大小及负载因子的配置。但是负载因子设置0.75为性能最优。如果要计算负载因子:存储数据的长度/创建hashmap的长度。你要问的是计算实际使用长度吧?如果使用默认长度是16,负载因子默认是0.75.那个可使用长度实际上为16*0.75的长度为12.如果超过长度12就会自动扩容为原长度的2倍为长度32,给之前赋的值再进行hash计算,重新定位。
2020-07-09
最赞回答 / botao555
你的理解有偏差, 跟是否产生hash碰撞没关系!! new HashMap(10000, 0.75f)这里的10000指的是map里存的key的数量, map里有个成员变量size来记录的, 不是代表数组大小! 可以看HashMap的put方法的源码, 如果key已存...
2020-06-24
最新回答 / 隔壁老杜不风流
不会,老师讲的很明白了,如果不发生碰撞的话,是会扩容,照你的比如,key通过hash取址后只有10000(超过12288才会扩容),未达到16384*0.75=12288,所以是不会扩容的,这是我的理解,如果回答错误还望指正。
2020-06-18
最赞回答 / Kevin_Glaser
我是HashMap和LinkedHashMap分开写的,HashMap的赋值取值完毕了再去运行LinkedHashMap的,但是我的赋值是LinkedHashMap快,取值反而LinkedHashMap慢了
2020-06-14