理解 HashMap 加载因子 loadFactor

source: https://my.oschina.net/weiweiblog/blog/612812

一、何为加载因子?

加载因子是表示Hsah表中元素的填满的程度.若:加载因子越大,填满的元素越多,好处是,空间利用率高了,但:冲突的机会加大了.反之,加载因子越小,填满的元素越少,好处是:冲突的机会减小了,但:空间浪费多了.


冲突的机会越大,则查找的成本越高.反之,查找的成本越小.因而,查找时间就越小.  

因此,必须在 "冲突的机会"与"空间利用率"之间寻找一种平衡与折衷. 这种平衡与折衷本质上是数据结构中有名的"时-空"矛盾的平衡与折衷.

二、HashMap中的加载因子

HashMap默认的加载因子是0.75,最大容量是16,因此可以得出HashMap的默认容量是:0.75*16=12。

用户可以自定义最大容量和加载因子。

HashMap 包含如下几个构造器:

  • HashMap():构建一个初始容量为 16,负载因子为 0.75 的 HashMap。

  • HashMap(int initialCapacity):构建一个初始容量为 initialCapacity,负载因子为 0.75 的 HashMap。

  • HashMap(int initialCapacity, float loadFactor):以指定初始容量、指定的负载因子创建一个 HashMap。


posted @ 2022-04-29 22:36  WORDLESS  阅读(231)  评论(0编辑  收藏  举报