小编典典

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

java

在回答中,用户说了这样的话:“带有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());
        }
    }
}

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


阅读 422

收藏
2020-09-28

共1个答案

小编典典

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

2020-09-28