记hashmap

发布时间 2023-11-15 21:15:31作者: 天启A

hashmap是map接口的一个实现类,在同步的情况下hashmap的性能是比较好的

 

hashmap就是一个kv键值对的集合,将数值散列均匀的存储在哈希表中。插入方法为map.put(k,v),读取方法为map.get(k,v)

允许使用null键和null值,会被默认为0

hashmap采用的是数组+链表的存储方式,当链表长度>8时会采用红黑树进行存储提高读取性能

当元素过多的时候,红黑树也无法提高性能,这时会发生扩容。将当前容量扩大2倍

 

与hashtable相比

hashmap的初始容量为16,hashtable为11。

hashmap会把null作为0存储,

hashmap性能更快,因为hashtable全程都会使用

但是当启用多线程时,hashmap在扩容时可能会遇到线程安全问题:容易发生死循环和插入失败。hashtable会启用同步锁