集合
父接口 | 子接口 | 实现类 |
---|---|---|
Collection | List 、Set | List: ArrayList、LinkedList、Vector Set:Hashset、TreeSet |
Map | Map | Map:HashMap、HashTable、TreeMap |
List 列表:元素是有序的(元素带下标),可以有重复元素
ArrayList : 线程不安全的,底层是数组结构,因为有下标,所以查询快,增删比较慢,增删的话如果一个在中间插入一组数据,则其他数据下标都需要改变,默认长度是10,超过长度时按50%延长集合长度
LinkedList:线程不安全的,底层是链表结构,增删快,查询慢,增删只需要前后元素相连即可,没有初始化长度
Vector:线程安全的,底层是数组结构。特点增删和查找都很慢,默认长度是10,超过长度时按照100%延长集合长度
Set列表:不区分元素顺序,不允许出现重复元素
Hashset:底层是hash表结构,存取速度快,元素唯一,线程不同步
TreeSet:底层是二叉树结构,元素是有序的
Map
HashMap:底层是hash表结构。允许null值null键,用做键的对象必须实现hashCode和equals方法保证键的唯一性,线程不同步,效率比较高,hash数组默认大小默认是16,增加方式2的指数倍
HashTable:底层是hash表结构,不允许null值null键,hash数组默认大小是11,增加方式是old*2+1,线程同步
TreeMap:底层是二叉树结构,允许使用null值null键,能够把保存的记录根据键进行排序,默认是升序,线程不同步