Java Collections Framework 自JDK 1.2之后被引入。Collections Framework 在为对集合(Collections)对象的操提供了统一框架的同时, 允许集合对象的具体的操作方式与其表现形式独立(隐藏了底层的实现方式, 对编程者透明)。 其设主要计目标是在提供尽量少的API数量的同时, 能够为程序员提供“概念层面”的语意操作。

What is Java Collections Framework?

可以将Collections理解为包含了多个对象的的容器。 在Java中我们常用的集合类包括: Vector, Stack, Hashtable, Array等等。 Java Collections Framework(JCF)主要包括, 但不限于以下几个部分:

  • Interfaces: JCF通过一些接口定义对具体的collection操作进行了类型抽象。具体的接口继承关系如下图:

  • Implementation Classes: JCF提供了常用的集合类的具体实现类, 比如: ArrayList, LinkedList, HashMap, TreeMap, HashSet, TreeSet等。 Java 1.5之后引入了线程安全的(thread-safe)的集合实现类, 主要被封装在java.util.concurrent包中, 比如: ConcurrentHashMap, CopyOnWriteArrayList等。

  • Algorithms: 一些通用的算法被封装起来, 比如搜索(Searching)、排序(Sorting)等。

Why Java Collections Framework?

  • 降低编程难度
  • 提高程序性能
  • 提高API间的互操作性
  • 降低学习难度
  • 降低设计和实现相关API的难度
  • 增加程序的重用性

Collection Implementations

接口的具体实现类采用的风格进行命名。 jdk内置封装好的通用实现, 可以总结为下表:

参考引用