Java集合体系
集合类主要存放在Java.util包,主要有三种:set(集合),list(列表),map(映射)。
其中set接口是存储一组无序,唯一的对象(就是数据不允许重复);
list接口存储的是一组有序(索引顺序)的,不唯一的对象(数据允许重复);
map接口存储一对键值对象,提供key到value的映射,其中key是唯一的(不允许重复)无序的,value是不唯一(允许重复)无序的。
以下为各自的实现类
List实现类有三:
ArrayList:排列有序,可重复,底层使用数组,数度快,增删慢,当它的容量不足时扩展到当前容量的1.5倍+1(索引是从0开始,长度从1开始算)
Vector:排列有序,可重复,底层使用数组,速度块,增删慢,当容量不够时,默认扩展到一倍的容量
LinkedList:排列有序,可重复,底层使用双向循环链表数据结构,速度慢,增删慢
Set实现类有三:
HashSet:排列无序,不可重复,底层使用哈希表实现,存取速度快,内部是HashMap
TreeSet:排列无序,不可重复,底层使用二叉树实现,排列存储,内部是TreeMap的SortedSet
LinkedHashSet:采用hash表存储,并用双向链表记录插入顺序,内部是LinkedHashMap
Map的实现有三:
HashMap:键不可以重复,值可以重复,底层为哈希表。支持key null value null 但最多支持一个key为null,可以有多个value为null
Hashtable:基本已成淘汰趋势。
TreeMap:键不可以重复,值允许重复,底层二叉树