集合相关总结

文章目录
  1. 1. Map
    1. 1.1. HashMap:
    2. 1.2. LinkHashMap:
    3. 1.3. TreeMap:
  2. 2. List
    1. 2.1. ArrayList
    2. 2.2. LinkedList
  3. 3. Set
    1. 3.1. HashSet
    2. 3.2. TreeSet
  4. 4. Queue
    1. 4.1. ArrayBlockingQueue
    2. 4.2. ArrayBlockingQueue
  5. 5. Other
    1. 5.1. HashTable

Map

LinkHashMap,HashMap,TreeMap

HashMap:

继承了AbstractMap,实现Map,实现的数据结构是 数组+链表,通过计算传过来的

LinkHashMap:

继承了HashMap,同时自己维护着一个双向链表

TreeMap:

继承了AbstractMap,自己实现的数据结构是红黑树

1
2
3
4
5
6
7
class Entry<K,V> implements Map.Entry<K,V> {
K key;
V value;
Entry<K,V> left;
Entry<K,V> right;
Entry<K,V> parent;
boolean color = BLACK;}

List

ArrayList

继承了AbstractList 基于数组来实现的.

LinkedList

继承AbstractSequentialList ->AbstractList 基于链表来实现

Set

HashSet

内部实现是使用的HashMap

TreeSet

基于红黑树来实现

Queue

ArrayBlockingQueue

基于数组的队列最大是INTEGER.MAX_VALUE,

ArrayBlockingQueue

基于列表来实现

Other

HashTable

和HashMap比较,性能不强但是保存的逻辑还是hash值来作为插入的关键词,加入了synchronized

参考链接: 𝑬𝒏𝒅𝒘𝒂𝒔 – 总结常见的五种BlockingQueue