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