拆行解码 Java 集合源码之总览

211 阅读1分钟

Java 集合源码解析系列:

集合总览

CollectionMap 是 Java 集合最顶层的接口或者概念,无论是集合包还是并发包,都基于此。

核心特点:

  • 用于存放对象的容器;
  • 可变长度,自动扩容;
  • 不可存储基本类型。

Collection

在 Collection 之下,又分为几类:

  • Set:是否有序,看具体实现。元素唯一,判断依据:HashCode、Equals
  • List:有序集合,元素不唯一。
  • Queue:不唯一,先进先出
  • Stack:不唯一,先进后出

List、Set 可以操作集合中任意位置的元素; List 可以精确控制插入的位置,可以通过索引值访问元素。

Queue 和 Stack 只能操作指定位置的,比如 Queue 只能操作队头队尾、Stack 只能操作栈顶。

Map 的特性主要是 Key 位置,支持高效搜索。

带 Tree 前缀的,支持元素的有序,比如 TreeSet、TreeMap。

带 Linked 底层都是支持链表,支持数据插入有序性和遍历的高效、稳定。

带 Hash 则底层以哈希表为结果,注 HashSet 底层以 HashMap 为实现。