集合体系核心分类
Java 集合框架(Collection Framework)核心分为两大体系,核心区别在于存储元素的维度: 单列集合:每次存储单个元素,顶层接口为 java.util.Collection 双列集合:每次存储一对元素(键 Key + 值 Value),顶层接口为 java.util.Map
| 维度 | 单列集合 (Collection) | 双列集合 (Map) |
|---|---|---|
| 存储单位 | 单个元素 | 键值对 (Key-Value Pair) |
| 顶层接口 | java.util.Collection | java.util.Map |
| 核心实现 | List, Set, Queue | HashMap, TreeMap, LinkedHashMap |
| 遍历方式 | 迭代器、增强 for、Lambda | 键找值、键值对、Lambda |
| 空值处理 | 大多数允许 null | 部分允许 null 键/值 |
| 线程安全 | 默认非线程安全 | 默认非线程安全 |
单列集合
Collection
Collection 是单列集合的顶层接口,定义了所有单列集合都能使用的核心方法(增、删、查、判空等),相当于所有单列集合的'通用说明书'。
核心方法
import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class CollectionDemo { public static void main(String[] args) { // 1. 创建 Collection 对象(ArrayList 是 Collection 的常用实现) Collection<String> coll = new ArrayList<>(); // ------------- 基础操作 ------------- coll.add("Java"); // 添加单个元素 coll.add("Python"); coll.add("Go"); System.out.println("集合内容:" + coll); // [Java, Python, Go] System.out.println("集合大小:" + coll.size()); // 3 System.out.println("是否为空:" + coll.isEmpty()); // false System.out.println("是否包含 Java: " + coll.contains("Java")); // true // ------------- 批量操作 ------------- Collection<String> other = Arrays.asList("Rust", "Kotlin"); coll.addAll(other); // 批量添加 System.out.println("批量添加后:" + coll); // [Java, Python, Go, Rust, Kotlin] // ------------- 移除操作 ------------- coll.remove("Go"); // 移除指定元素 // JDK8+:移除所有以"J"开头的元素(Lambda 简化写法) coll.removeIf(lang -> lang.startsWith("J")); System.out.println("移除后:" + coll); // [Python, Rust, Kotlin] // ------------- 保留操作 ------------- Collection<String> retainList = Arrays.asList("Python", "Rust"); coll.retainAll(retainList); // 只保留和 retainList 重叠的元素 System.out.println("保留后:" + coll); // [Python, Rust] // ------------- 清空操作 ------------- coll.clear(); System.out.println("清空后是否为空:" + coll.isEmpty()); // true } }

