深入理解java的hashmap

来源:互联网 发布:网络直播足球赛 编辑:程序博客网 时间:2024/06/05 05:55

hashmap关注个人开源项目

hashmap是实现map接口的实现类,是线程非安全的,所以效率大于hashtable

hashmap默认有4个构造方法

HashMap()
构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity)
构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity, float loadFactor)
构造一个带指定初始容量和加载因子的空 HashMap。
HashMap(Map

理解hashmap的桶数量和加载因子

  1. 默认桶数量是16个,加载因子 是0.75,所以当达到hashmap容量容积16*0.75=12时,hashmap则重新进行构造数据结构变为32个桶
  2. 相对准确的估算数据量,将极大的影响HashMap的性能,因为resize是一个重新分配的过程,耗时应该是里面最大的。
  3. 加载因子越大,填满的元素越多,空间利用率高了,则查找的成本越高.
  4. 加载因子越小,填满的元素越少,好处是:冲突的机会减小了,但:空间浪费多了,但查找变快了
原创粉丝点击