java常用集合:
Collection | List | ArrayList | 1、排列有序,可重复 |
2、底层使用数组 | |||
3、查询速度快,增删慢 | |||
4、线程不安全,效率高 | |||
5、当容量不够时,cap×1.5+1 | |||
Vector | 1、排列有序,可重复 | ||
2、底层使用数组 | |||
3、查询速度快,增删慢 | |||
4、线程安全,效率低 | |||
5、当容量不够时,cap×2 | |||
LinkedList | 1、排列有序,可重复 | ||
2、底层双向循环链表 | |||
3、查询速度慢,增删快 | |||
4、线程不安全 | |||
Set | HashSet | 1、排列无序,不可重复 | |
2、底层使用hash表实现 | |||
3、存取速度快 | |||
4、内部是HashMap | |||
TreeSet | 1、排列无序(不定),不可重复 存储基本数据类型时有序且保证元素唯一性;存储自定义类型,实现Comparable接口,重写compareTo方法,元素唯一性根据重写的compareTo方法而定 | ||
2、底层使用二叉树 | |||
3、排序存储 | |||
4、内部是TreeMap和SortedSet | |||
LinkedSet | 1、采用hash表存储,并用双向链表记录插入顺序 | ||
2、内部是LinkedHashMap | |||
Queue | 1、PriorityQueue先进先出队列,新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素 2、Deque双端队列,Deque接口里定义了一些双端队列的方法,这些方法允许从两端来操作队列的元素 | ||
Map | HashMap | 1、键不可重复,值可重复 | |
2、底层hash表 | |||
3、线程不安全 | |||
4、允许key的值为null,value也可以为null | |||
HashTable | 1、键不可重复,值可重复 | ||
2、底层hash表 | |||
3、线程安全 | |||
4、key、value都不可以为null | |||
TreeMap | 1、键不可重复,值可重复 | ||
2、底层二叉树 |