list:特点:
arraylist
linkedList
Vector
数组和链表在堆内存中:
有序,可重复
set:特点:
hashset
TreeSet
无序不可重复
map
当索引位置节点增加到9个时,并且数组长度大于等于64时,链表变为红黑树
当同一个索引位置的节点移除后达到6个时,并且索引位置节点位红黑树节点,红黑树会转成链表节点
在同一个索引位置下加节点也叫拉链法
- 数组扩容:初始容量为16,初始的负载因子为0.75,但数组超过12的时候,会进行扩容,两倍的增长
- 链表:使用hash值来计算储存的位置,如果该位置已经有了不为空,那么会创建出一个链表,链表节点的最大值是8,如果是长度大于64的时候会自动转为红黑树
- 红黑树:使用红黑树查询高于普通列表,因为是使用的二分查找效率要高于顺序查找并且会保持效率。如果当数量小于6的时候会自动转换成链表。
hashmap
1.结构
2.特性,特点
3.初始值
为什么1.8使用数组+链表+红黑树
HashTable
1.特点,特性
2.结构
3初始值
ConcurrentHashMap
1.特性
2.数据结构
3.初始值
4.与hashmap对比的优势
ConcurrentHashMap实现的原理 :分段锁机制,在对象中保存一个Segment数组,将整个Hash表划分为多段;每一个Segment元素都类似域一个Hashtable,根据哈希值定位具体的Segment元素,然后对该Segment元素加锁,从而实现多线程开发的安全性
哈希冲突解决