223. Java 集合 - 认识 Java 集合体系
1. 🧭 防止在集合体系中迷路
Java的集合框架(Collections Framework)被分成了多个层次结构(Hierarchies),主要是为了组织不同的数据存储方式。
首先我们需要掌握的,是最基础的:
➡️ Collection接口体系(Collection Interface Hierarchy)
2. 🛤️ Collection接口体系概览
简单来说,Collection接口体系长这样(省略了一些次要接口,后面会补充):
Iterable
↓
Collection
↓
-----------------------------
| | |
List Set Queue
-
Iterable是最顶层(但其实不属于Collections Framework本身) -
Collection是集合体系的核心接口 -
List、Set、Queue是三大常用子接口
🎯 记住一句话:
凡是
Collection的子接口,都是可以被“遍历(iterate)”的。
3. 🔍 深入理解 Iterable 接口
虽然 Iterable 接口不是严格意义上的集合框架的一部分,但它非常重要。
因为所有集合(Collection)都继承自 Iterable,这意味着:
✅ 任何集合对象都可以用for-each语法来遍历!
📖 什么是 Iterable?
-
Iterable接口是在Java SE 5(2004年) 中引入的。 - 它的作用是:提供一个
Iterator对象,让你可以遍历元素。 - 它只要求实现一个方法:
iterator(),返回一个Iterator<E>。
🚀 经典示例:使用 for-each 遍历集合
import java.util.*;
public class IterableExample {
public static void main(String[] args) {
Collection<String> names = List.of("Alice", "Bob", "Charlie");
for (String name : names) {
System.out.println(name);
}
}
}
输出:
Alice
Bob
Charlie
🎯 这里的 names 就是一个 Collection,它继承了 Iterable,因此可以直接用 for-each 遍历!
4. 🔧 自定义一个Iterable对象(进阶示例)
如果你自己写一个类,只要实现 Iterable 接口,就能支持for-each遍历!
🌟 示例:自定义一个简单的数字集合
import java.util.Iterator;
public class MyNumberCollection implements Iterable<Integer> {
private int[] numbers = {1, 2, 3, 4, 5};
@Override
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
private int index = 0;
@Override
public boolean hasNext() {
return index < numbers.length;
}
@Override
public Integer next() {
return numbers[index++];
}
};
}
public static void main(String[] args) {
MyNumberCollection collection = new MyNumberCollection();
for (int number : collection) {
System.out.println(number);
}
}
}
输出:
1
2
3
4
5
🧠 解释:
- 实现
Iterable接口。 - 提供自己的
Iterator。 - 支持优雅地用
for-each语法进行遍历。
5. ✨ 小结
-
Collection体系的顶层是Iterable,它保证了所有集合可以使用for-each遍历。 -
Iterable非常轻量,只要求返回一个Iterator对象。 - 掌握
Iterable,理解for-each背后的本质。












网友评论