接口
Collection可以放入多个同类型的对象List继承Collection接口,容器内对象有序Set继承Collection接口,容器内对象不可重复Queue继承Collection接口,容器内对象有序,且实现了队列先进先出的特性Deque继承Queue接口,实现了双端队列BlockingQueue继承Queue接口,实现了阻塞式入队和出队Map实现key到value之间的映射
实现类
非线程安全
ArrayList实现List接口,数据结构为动态扩容的对象数组LinkedList实现List接口和Deque接口,数据结构为双向链表HashSet实现Set接口,底层为HashMapLinkedHashSet继承HashSet,在HashSet的基础上维护一个元素的双向链表,链表的顺序为元素加入的先后顺序,底层为LinkedHashMapTreeSet实现SortedSet接口,元素根据比较规则有序,底层为TreeMapArrayQueue实现Deque接口,数据结构为数组PriorityQueue实现Queue接口,元素出队顺序与优先级相关,底层是数据实现的二叉堆HashMap实现Map接口,数据结构为数组,数组的元素为链表(或在链表长度过长时变为红黑树),根据key的哈希值确定键值对存放在数组的哪个位置,再通过链表(或红黑树)解决哈希冲突LinkedHashMap继承HashMap,在HashMap的基础上维护一个键值对的双向链表,链表的顺序为键值对加入的先后顺序TreeMap实现SortedMap接口,键值对根据比较规则有序,数据结构为红黑树
线程安全
ConcurrentHashMap实现Map接口,HashMap的高性能线程安全版本CopyOnWriteArrayList实现List接口,ArrayList的线程安全版本ConcurrentLinkedQueue实现Queue接口,数据结构为链表,出队和入队使用CAS算法,高性能,无界队列ArrayBlockingQueue实现BlockingQueue接口,可阻塞式出入队,数据结构为数组,出队和入队使用ReentrantLock,有界队列LinkedBlockingQueue实现BlockingQueue接口,可阻塞式出入队,数据结构为链表,出队和入队使用ReentrantLock,可有界可无界PriorityBlockingQueue实现BlockingQueue接口,可阻塞式出入队,PriorityQueue的线程安全版本ConcurrentSkipListMap实现Map接口,数据结构为跳表
PREVIOUSSpring Boot配置文件中获取Maven信息