我正在阅读问题中提到的答案 “Do we ever need to use Iterators on ArrayList?”。
在回答中,用户这样说:“使用 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());
}
}
}
谁能解释一下迭代器的意义?如果你能用代码解释我,那就太好了。
最佳答案
正如您所说,当您在迭代数组内容时想要删除内容时使用迭代器。如果您不使用迭代器,而只是有一个 for 循环并在其中使用 remove 方法,您将得到异常,因为在您迭代时数组的内容会发生变化。例如:你可能认为在 for 循环开始时数组大小是 10,但一旦你删除东西就不会这样了。所以当你到达最后一个循环时,可能会有 IndexOutofBoundsException 等。
关于java - 为什么我们需要在 Java 中的 ArrayList 上使用迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16000282/