为什么我们需要在Java中对ArrayList使用迭代器?

问题描述

如前所述,迭代器用于迭代数组内容时要删除的内容。如果您不使用迭代器,而仅使用for循环,并且在其中使用remove方法,则将获得异常,因为在迭代过程中数组的内容会更改。例如:您可能认为for循环开始时的数组大小为10,但是一旦删除内容就不会是这种情况。因此,当您到达最后一个循环时,可能会出现IndexOutofBoundsException等。

解决方法

在回答中,用户说了这样的话:“带有ArrayLists的迭代器的一个大用例是,当您要在迭代时删除元素时”。

即使使用Java中的ArrayList的remove方法也可以实现。我的问题是为什么我们在ArrayList中需要迭代器?

考虑以下代码:

import java.util.*;
public class ocajp66 {
    public static void main(String[] args) {
        ArrayList a = new ArrayList();
        for (int i = 0; i < 10; i++) {
            a.add(i);
        }
        System.out.printf("BEFORE ITERATOR\n");
        for (int i = 0; i < a.size(); i++) {
            System.out.printf("I:%d\n",a.get(i));
        }
        System.out.printf("AFTER ITERATOR\n");
        Iterator i = a.iterator();
        while (i.hasNext()) {
            System.out.printf("I:%d\n",i.next());
        }
    }
}

谁能解释迭代器的意义?如果可以用代码解释我,那将是很棒的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...