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