HashMap数据结构?
数组+链表(冲突后头插)
解决冲突两种方式?
分离链接
二次探测
HashMap使用分离链接的方法
initialCapacity数组初始大小16
loadFactor加载因子0.75
HashMap什么时候,怎么扩容?resize
大于等于阈值(即当前数组的长度乘以加载因子)
initialCapacity*loadFactor=12第一次扩容阈值
HashMap问题
扩容时候全部重新插入数据?解决办法,预估容量,声明时候预设容量
链表过长时间复杂度为线性?1.8链表长度超过8个就变成红黑树结构,时间复杂度为log
TreeMap数据结构?
红黑树
TreeMap特点
有序
HashMap,LinkedHashMap,TreeMap区别
比对项目 | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
存储结构 | 数组单链表 | 数组双链表 | 红黑树 |
是否有序 | 无 | 插入或者访问顺序 | 实现SortMap,根据键排序 |