关于Collection中的迭代器iterator()方法:
1、Iterator iterator();是一个抽象方法,在集合子类中有重写。
2、这个方法是Collection接口继承了Iterable接口,继承过来的一个方法。
3、该方法返回的是一个Iterator类型接口。
4、每个子类集合中定义了一个私有内部类private class 类名 implements Iterator,已经实现了这个接口。
所以说每个子类可以使用重写的iterator()方法得到一个迭代器对象。
5、通常使用多态这样写:Iterator it = 实例集合对象.iterator();
迭代器接口指向迭代器对象。
子类拿到这个迭代器对象之后,就可以遍历自己集合中的元素。
6、Iterator接口有三个方法:
-
boolean hasNext();
迭代过程中判断是否还有元素可迭代。 -
Object next();
返回迭代的下一个元素 -
default void remove();
在迭代器中删除集合的元素。注意:在迭代过程中不能使用集合自带的remove()方法,会迭代异常。
测试代码:
注意:以下测试代码,迭代方式通用于Collection的所有子类集合,但是,除了Map集合之外。
import java.util.*;
public class Test02 {
public static void main(String[] args) {
// 这里先测试List集合,有序可重复
Collection c = new ArrayList();
//Collection c = new LinkedList();
//Collection c = new Vector();
// 添加几个元素
c.