白白白

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、深入理解 HashMap 加载因子 loadFactor :

 

 

 

 

 2、hashmap 中的初始容量和加载因子之间的联系  http://www.aichengxu.com/java/1446145.htm

/*

构造一个新的空 set,其底层 HashMap 实例具有指定的初始容量和指定的加载因子

*/

public HashSet(int initialCapacity, float loadFactor) {

map = new HashMap<>(initialCapacity, loadFactor);

}

初始容量 是哈希表在创建时的容量。

加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。

当哈希表中的条目数超出了加载因子与当前容量的乘积时,通过调用

rehash 方法将容量翻倍。

比如说向水桶中装水,此时HashMap就是一个桶, 这个桶的容量就是加载容量,而加载因子就是你要控制向这个桶中倒的水不超过水桶容量的比例,比如加载因子是0.75 ,那么在装水的时候这个桶最多能装到3/4 处,超过这个比例时,桶会自动扩容。因此,这个桶最多能装水

= 桶的容量 * 加载因子。

如果桶的容量是40,加载因子是0.75

那么你的桶最多能装40*0.75 = 30的水,如果你装了30的水还想继续装水,那么就该用大一点的桶,调用rehash就是负责增加桶的容量的方法。

posted on 2017-05-26 17:03  道至简  阅读(1062)  评论(0)    收藏  举报