☰
集合概述 Collection 接口
2026/11/4 7:10:43 网站建设 项目流程

所属包:java.util;集合只存引用类型,基本数据类型要使用包装类 虚线框 = 接口,实线框 = 实现类

一、集合概述

1. 集合是什么

集合是 Java 提供的容器,用来存储、管理多个对象,长度可变。 数组也是容器,集合就是为了弥补数组的短板。

2. 数组 vs 集合对比

对比项数组集合
长度固定,创建后不能修改可变,自动扩容
存储内容可以存基本类型、引用类型只能存引用类型(存基本类型会自动装箱)
存储类型同一数组只能存同一种类型可以指定泛型,限制类型;不指定默认存 Object
自带方法方法很少,只有 length 属性大量现成增删改查方法,功能强大

3. 集合核心继承体系

  • 单列集合:Collection(一次存一个元素)
    • List(子接口)→ 实现类:ArrayList、LinkedList、Vector
    • Set(子接口)→ 实现类:HashSet、LinkedHashSet、TreeSet
  • 双列集合:Map(一次存一对键值对 key-value)
    • 实现类:HashMap、LinkedHashMap、TreeMap、Hashtable、Properties

4. 集合四大核心接口

接口描述
Collection集合中最基本的接口,一般不直接使用该接口
ListCollection 的子接口,存储有序、可重复对象,常用接口
SetCollection 的子接口,存储无序、唯一(不可重复)对象
Map存储一组键值对,提供 key 到 value 的映射关系

✅ 纠正 PPT 文字错误:PPT 写 List “无序” 是写错了,List 是有序、带索引!

二、Collection 接口(单列集合顶层接口)

Collection 是所有单列集合的顶层接口,List、Set 都继承它;接口不能 new,只能用实现类 + 多态写法。

✅ PPT 列出基础方法

方法声明功能描述
boolean add(Object o)向集合中添加一个元素
boolean addAll(Collection c)将指定集合 c 里所有元素添加到当前集合
void clear()删除集合中所有元素,清空集合
boolean remove(Object o)删除集合中指定的元素
boolean removeAll(Collection c)删除当前集合中,同时存在于集合 c 里的元素(差集)

✅ 补充剩余常用 Collection 方法(完整版本)

方法声明功能描述
boolean contains(Object o)判断集合是否包含指定元素
boolean containsAll(Collection c)判断当前集合是否包含集合 c 全部元素
boolean retainAll(Collection c)保留两个集合的交集,删掉其他元素
int size()获取集合内元素个数
boolean isEmpty()判断集合是否为空(元素数量为 0)
Object[] toArray()集合转为 Object 数组
<T> T[] toArray(T[] a)集合转为指定泛型数组

代码示例(多态,ArrayList 演示)

import java.util.ArrayList; import java.util.Collection; public class TestCollection { public static void main(String[] args) { // 多态写法:父接口引用指向子类对象 Collection<String> coll = new ArrayList<>(); // add 添加 coll.add("张三"); coll.add("李四"); coll.add("王五"); System.out.println(coll); // [张三, 李四, 王五] Collection<String> coll2 = new ArrayList<>(); coll2.add("李四"); coll2.add("赵六"); // addAll 批量添加 coll.addAll(coll2); System.out.println(coll); // remove 删除单个元素 coll.remove("王五"); System.out.println(coll); // removeAll 删除交集元素 coll.removeAll(coll2); System.out.println(coll); // size、contains、isEmpty System.out.println(coll.contains("张三")); System.out.println(coll.size()); System.out.println(coll.isEmpty()); // clear 清空全部元素 coll.clear(); System.out.println(coll.isEmpty()); } }

三、Collection 通用遍历方式

  1. 迭代器 Iterator:单列集合通用遍历,Set 无索引优先用迭代器
  2. 增强 for 循环(for-each):底层封装迭代器,写法简洁
for(元素类型 变量 : 集合/数组){ System.out.println(变量); }
  1. JDK8forEach+ Lambda 表达式(之前 Lambda 知识点,整合进来)
coll.forEach( s -> System.out.println(s) );

四、重点易错点总结

  1. 虚线 = 接口,实线 = 实现类;Collection、List、Set、Map 都是接口,不能直接 new
  2. List:有序、带索引、元素可重复;Set:无序、无索引、元素不可重复
  3. remove(Object o):Collection 层面是按元素对象删除,不是索引;只有 List 才有按索引删除的重载方法
  4. clear()只是清空里面元素,集合对象本身还存在,不是变成 null
  5. 集合存储的是对象地址,不是对象本身;泛型用来限定存储类型,避免类型转换异常
  6. Map 是双列集合,不属于 Collection 分支,和 Collection 是平级两大分支

五、小节小结

  • 集合分两大分支:单列 Collection、双列 Map
  • Collection 是单列集合根接口,定义所有单列集合通用增删查方法
  • 单列集合遍历:迭代器、增强 for、forEach+Lambda

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询