1.Collection是集合List、Set、Queue的接口
2.List有三个实现类,分别是ArrayList,Vector,LinkedList
- ArrayList:排列有序,可重复、底层使用数组、查询快,增删慢、线程不安全、当容量不够时,ArrayList是当前容量*1.5+1
- Vector: 排列有序,可重复、底层使用数组、查询快,增删慢、线程安全、当容量不够时,Vector默认扩展一倍
- LinkedList:排列有序,可重复、底层使用双向链表数据结构、查询慢,增删快、线程不安全
3.Set有 三个实现类,分别是HashSet、TreeSet、LinkedHashSet
- HashSet:键不可重复,值可重复、底层使用Hash表实现、存取速度快、内部是HashMap
- TreeSet:键不可重复,值可重复、底层使用二叉树实现、顺序存储、内部是TreeMap的SortedSet
- LinkedHashSet:采用hash表存储,用双向循环链表记录插入顺序、内部是LinkedHashMap
4.queue:在两端出入的List,可以用数组或链表实现
5.Map的实现类有HashMap、hashtable、TreeMap
- HashMap:键不可重复,值可重复、底层数组+链表+红黑树、线程不安全、允许key,value为null
- hashtable:键不可重复、值可重复、底层哈希表、线程安全、key,value都不允许为null
- TreeMap:键不可重复,值可重复、底层二叉树
6.ArrayList是List的实现类,内部通过数组实现,允许对元素进行快速随机访问,数组的缺点是每个元素之间不能有间隔
7.Vector:vector通过数组实现,它支持线程的同步,某一时刻只有一个线程能够写vector
8.LinkedList:LinkedList是用链表结构存储数据的,适合数据的动态插入和删除。
9.HashSet:哈希表存放的是哈希值,HashSet存储元素的顺序是按照哈希值来存的所以也是按照哈希值来取的
10.TreeSet:TreeSet()是使用二叉树的原理对新add()的对象按照指定的顺序排序,每增加一个对象都会进行排序,将对象插入二叉树指定的位置。
- HashMap:HashMap是根据键的hashCode值存储数据,HashMap最多是允许一条记录的键为null,允许多条记录的值为null,HashMap是非线程安全的,如果想要满足线程安全,可以用Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用ConcurrentHashMap
|