Collection 是 Java 集合框架的顶层根接口,定义单列集合共有的基本操作规范,不提供实现;所有具体集合类(如 ArrayList、HashSet)均实现它或其子接口,支持统一处理、多态和泛型安全。

Collection 是 Java 集合框架的顶层根接口,它不提供具体实现,而是定义了单列集合(只存元素、不存键值对)共有的基本行为和操作规范。
它是所有单列集合的统一契约
Java 不允许直接 new Collection(),因为它是接口。所有实际使用的集合类——比如 ArrayList、LinkedList、HashSet、TreeSet——都必须实现 Collection 或其子接口(List / Set / Queue)。这种设计让不同集合类型能被统一处理:
- 方法签名一致:add()、remove()、contains()、size()、isEmpty() 等都在 Collection 中声明
- 支持多态:你可以用 Collection
coll = new ArrayList();,后续换成 LinkedList 或 HashSet,只要逻辑不依赖索引或顺序,代码无需改动 - 泛型约束强制类型安全:声明 Collection
就意味着只能添加 Integer 或其子类,避免运行时 ClassCastException
它屏蔽底层差异,聚焦“一组对象”的本质
数组长度固定、只能存基本类型或对象引用;Collection 则抽象出“动态容器”的核心能力:
- 容量可变:自动扩容缩容,不用预估大小
- 只管元素,不管结构:不关心内部是数组、链表还是哈希表,使用者只需关注“加、删、查、遍历”这些通用动作
- 统一遍历入口:所有 Collection 实现都必须提供 iterator() 方法,返回 Iterator,从而支持标准 while + hasNext()/next() 循环,也兼容 for-each 和 Stream
它承上启下,构成集合体系的骨架
Collection 本身不规定顺序、重复、排序等特性,而是把这些职责交给子接口细化:
立即学习“Java免费学习笔记(深入)”;
- List:有序、可重复、支持索引访问 → 强调位置与插入控制
- Set:无序(或按规则排序)、不可重复 → 强调唯一性
- Queue:强调先进先出等队列行为 → 强调操作语义
- Deque:双端队列 → 支持头尾增删
这种分层让开发者能按需选择:要查重用 Set,要保序用 List,要高效增删中间用 LinkedList,要随机访问快用 ArrayList —— 底层不同,但都共享 Collection 的基础能力。
基本上就这些。它不是工具类,也不是具体容器,而是一份“集合该做什么”的说明书,是 Java 集合生态得以灵活又不失统一的关键支点。










