collection 集合接口
|--List<E>值允许重复,有序的数据结构 按对象进入的顺序保存对象,不做排序或编辑操作
|--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问,中间插入与移除元素的速度很慢 数组方式存储数据,索引数据快插入数据慢,线程不安全
|--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销并不大。随机访问则相对较慢 双向链表实现存储,索引数据慢插入数度较快,线程不安全(比安全性能好)
|--Vector<E> 数组方式存储数据,索引数据快插入数据慢,线程安全
|--Stack 实现一个后进先出的堆栈
|--Set<E> 无顺序,不包含重复的元素, 加入Set的元素必须定义equals()方法以确保对象的唯一性
|--ArraySet<E>
|--HashSet<E>为快速查找设计的Set
|--LinkedHashSet<E>内部使用链表维护元素的顺序(插入的次序)。
|--TreeSet<E> 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。
|--Queue<E>
|--BlockingQueue<E>
|--ArrayDeque<E>
Map<K,V> 维护“键值对”的关联性,使你可以通过“键”查找“值” 成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)
|--ArrayMap<K, V>
|--HashMap<K, V>基于散列表的实现,允许空键空值,线程不安全
|--LinkedHashMap<K,V>类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,或者是最近最少使用(LRU)的次序
|--Hashtable<K,V>基于散列表的实现,允许空键空值,线程安全
|--WeakHashMap<K, V> 弱键(weak key)Map,Map中使用的对象也被允许释放 如果没有map之外的引用指向某个“键”,则此“键”可以被垃圾收集器回收。
|--TreeMap<K, V>基于红黑树数据结构的实现。查看“键”或“键值对”时,它们会被排序 允许空键空值,线程安全 subMap()方法可以返回一个子树
|--IdentifyHashMap<E> 使用==代替equals()对“键”作比较的hash map
SparseArray<E>:采用了二分法方式存储数据(安卓的一个集合类)可代替HashMap<Integer, E>