更新时间:2023-08-01 来源:黑马程序员 浏览量:

在Java中,我们可以自己编写一个容器类,并且可以使用for-each循环(也称为增强型for循环或foreach循环)遍历容器中的元素。要实现这一点,我们的容器类必须满足以下条件:
我们的容器类必须实现java.lang.Iterable接口。该接口包含一个名为iterator() 的方法,该方法返回一个实现了java.util.Iterator接口的对象,用于遍历容器中的元素。
我们的容器类还必须实现java.util.Iterator接口。Iterator接口定义了几个方法,如hasNext()(判断是否有下一个元素)、next()(返回下一个元素)和remove()(从容器中移除当前元素,可选操作)。
接下来笔者用一个具体的代码示例,演示下如何创建一个自定义容器类并使用for-each循环遍历它:
import java.util.Iterator;
// 自定义容器类
class MyContainer<T> implements Iterable<T> {
private T[] elements;
private int size;
@SuppressWarnings("unchecked")
public MyContainer(int capacity) {
elements = (T[]) new Object[capacity];
size = 0;
}
public void add(T element) {
elements[size++] = element;
}
@Override
public Iterator<T> iterator() {
return new MyIterator();
}
// 自定义迭代器类
private class MyIterator implements Iterator<T> {
private int currentIndex = 0;
@Override
public boolean hasNext() {
return currentIndex < size;
}
@Override
public T next() {
return elements[currentIndex++];
}
}
}
public class Main {
public static void main(String[] args) {
MyContainer<String> container = new MyContainer<>(3);
container.add("Apple");
container.add("Banana");
container.add("Orange");
// 使用 for-each 循环遍历容器
for (String fruit : container) {
System.out.println(fruit);
}
}
} 输出结果:
Apple Banana Orange
在上述例子中,我们创建了一个自定义容器类MyContainer,实现了Iterable接口,并提供了一个内部类 MyIterator实现了Iterator接口。这样,我们就可以使用for-each循环来遍历容器中的元素。
1024首播|39岁程序员逆袭记:不被年龄定义,AI浪潮里再迎春天
2025-10-241024程序员节丨10年同行,致敬用代码改变世界的你
2025-10-24【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19