Collection和Collections区别
- Collection是集合的基类接口,拥有List和Set两个子类接口,自带有add(),remove(),isEmpty(),iterator(),size()等方法
- Collections针对集合的帮助类,提供一系列的静态方法对集合进行排序,搜索,线程安全等操作
特性 |
List |
ArrayList |
LinkList |
Vector |
是否线程安全 |
|
否 |
|
是 |
特点 |
元素有序,可重复 |
基于数组,查找快,增删慢,效率低。大于初始大小时,容量增加50%,默认大小10 |
基于链表,查找慢,增删快 |
效率高;大于初始大小,容量翻倍(即2倍),默认大小10 |
特点 |
Set |
HashSet |
LinkHashSet |
元素无序,不可重复 |
|
默认带下16 |
|
Map接口
方法:put(K key,V value),containskey(Object key),get(object key);
Map的四个实现类如上
特性 |
Map(抽象类) |
HashpMap |
Hashtable |
LinkHashMap |
TreeMap |
线程安全 |
|
否 |
是 |
否 |
特点 |
元素无序,不可重复 |
效率高,支持null,以原来大小的2的倍数进行增加,++默认大小是16++ |
效率低,不支持null,增加的方式old*2+1,++默认大小是11++(寻址有关) |
循坏双向链表,在LruCache中使用的数据结构 |
Collection FrameWork图如下