Java集合相关知识点

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>

猜你喜欢

转载自blog.csdn.net/hello_jiangdong/article/details/79224230