集合总览

参考https://www.cnblogs.com/CarpenterLee/p/5545987.html

 思想:从接口出发掌握集合

1.注意集合的“接口”框架图,熟记,并扫盲SortSet和NavigableSet等这种接口。

框架图:

来源:http://www.cnblogs.com/CarpenterLee/p/5414253.html

2.熟记常见实现类,他们实现的接口,以及异同

Map: hashMap, LinkedHashMap,TreeMap,IdentityHashMap,weakHashMap

   A) identityHashMap:https://segmentfault.com/q/1010000002779228

  1. 简单说IdentityHashMap与常用的HashMap的区别是:前者比较key时是“引用相等”而后者是“对象相等”,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。IdentityHashMap 允许使用null作为key和value. 不保证任何Key-value对的之间的顺序, 更不能保证他们的顺序随时间的推移不会发生变化.

  2. IdentityHashMap有其特殊用途,比如序列化或者深度复制。或者记录对象代理。

  3. 举个例子,jvm中的所有对象都是独一无二的,哪怕两个对象是同一个class的对象,而且两个对象的数据完全相同,对于jvm来说,他们也是完全不同的,如果要用一个map来记录这样jvm中的对象,你就需要用IdentityHashMap,而不能使用其他Map实现。

  B)

  HashMap不保证顺序。TreeMap实现了 SortMap,保证按照元素的升序。LinkedHashMap使用链表, 在HashMap的基础上保证了插入顺序。

  HashSet,TreeSet,同理。没有LinkedTreeSet,要用Collections.newSetFromMap(new LinkedHashMap<>())  包装实现

  C)NavigableMap:TreeMap实现了该接口。TreeSet同理(NavigableSet)

  NavigableMap除了继承SortedMap的特性外,它的提供的功能可以分为4类:
  第1类,提供操作键-值对的方法。
                 lowerEntry、floorEntry、ceilingEntry 和 higherEntry 方法,它们分别返回与小于、小于等于、大于等于、大于给定键的键关联的 Map.Entry 对象。
                 firstEntry、pollFirstEntry、lastEntry 和 pollLastEntry 方法,它们返回和/或移除最小和最大的映射关系(如果存在),否则返回 null。
  第2类,提供操作键的方法。这个和第1类比较类似
                 lowerKey、floorKey、ceilingKey 和 higherKey 方法,它们分别返回与小于、小于等于、大于等于、大于给定键的键。
  第3类,获取键集。
                navigableKeySet、descendingKeySet分别获取正序/反序的键集。
  第4类,获取键-值对的子集。

  详见:https://my.oschina.net/kevinair/blog/191242

  

Queue: PriorityQueue, ArrayDeque, LinkedList(其实更直接的实现了Deque)以及7种BlockingQueue

3.Collection实现了Iteratable,所以所有集合都可以通过iterator遍历

  集合大多数实现了,Cloneable和Serializable

4.并发容器,

  List: CopyOnWriteArrayList (实现了LIst)

  Set: CopyOnWriteArraySet (实现了Set, 注意:未实现Cloneable)

               ConcurrentSkipListSet  (实现了NavigableSe)

  Queue: 7种BlockingQueue 

  Map: ConcurrentHashMap(实现了ConcurrentMap)     

    ConcurretnSkipListMap(实现了ConcurretnNavigableMap)

   

原文地址:https://www.cnblogs.com/heyboom/p/10795018.html