阅读量:0
1、List接口
1.1 特点
(1)有序 (2)查找效率高:根据key,查看value
1.2 数据结构
数组(哈希表)+链表(链地址法解决哈希表冲突)+红黑树(自平衡的二叉树。提高查找效率)
1.3 常见实现类
线程不安全:
1.3.1 ArrayList
1.数据结构 数组 Object[] elementData 2.使用场景 查找、遍历,插入、删除效率低 3.扩容 (1)初始化: a.无参构造方法,数组的初始化容量为0;添加第一个元素时,数组容量扩容为10 b.有参构造方法:数组按照指定容量扩容 (2)容量不足时: 按照现有数组的1.5倍扩容
1.3.2 LinkedList
1.数据结构 链表:双向链表 2.使用场景 插入、删除效率高,查找效率低 3.扩容方式 链表动态扩容,每添加一个节点,链表动态扩容一个元素空间
线程安全:
1.3.3 Vector
1.数据结构 数组 Object[] elementData 2.扩容方式 (1)初始化: a.无参构造方法:数组的初始化容量为10 b.有参构造方法:数组按照指定容量初始化 (2)容量不足时: 按照数组现有容量的2倍或指定容量值(capacityIncreament)进行扩容 3.线程安全 通过"synchronized"同步锁实现
1.3.4 Stack
特点:先进后出FILO 或者 后进先出LIFO
1.3.5 CopyOnWriteArrayList
1.数组结构 数组 Object[] array 2.线程安全 a.通过"ReenTrantLock"锁实现 b.CopyOnWrite:"写入"操作时,先进行数组复制,然后在新数组进行写入操作,然后替换;允许读写同时进行
2、Set 接口
2.1 特点
无需,不允许重复(值唯一)
2.2 常见实现类
2.2.1 HashSet
1.特点:无序 2.数据结构:HashMap
2.2.2 LinkedHashSet
1.特点:有序 2.数据结构:LinkedHashMap
2.2.3 TreeSet
1.特点:自动排序 2.数据结构:TreeMap
3、Queue 接口
1.特点 先进先出FIFO,队头出队,队尾入队 2.常见实现类 (1)线程不安全: a.LinkedList:基于“双向链表”实现的队列 b.PriorityQueue:基于“堆”实现的优先队列 (2)线程安全: BlockingQueue:阻塞队列 a.ArrayBlockingQueue(有界) b.LinkedBlockingQueue(无界)