問題描述
我正在閱讀問題中提到的答案"我們是否需要在 ArrayList 上使用迭代器?".
I was reading the answer mentioned to the question "Do we ever need to use Iterators on ArrayList?".
在回答中,用戶這樣說:使用 ArrayLists 的迭代器的一個重要用例是當您想要在迭代時刪除元素".
In the answer, the user stated something like this: "A big use case of iterators with ArrayLists is when you want to remove elements while iterating".
這甚至可以在 Java 中使用 ArrayList 的 remove 方法來實現.我的問題是為什么我們需要 ArrayList 中的迭代器?
This could be achieved even using remove method of ArrayList in Java. My question is why we need iterator in 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
");
for (int i = 0; i < a.size(); i++) {
System.out.printf("I:%d
", a.get(i));
}
System.out.printf("AFTER ITERATOR
");
Iterator i = a.iterator();
while (i.hasNext()) {
System.out.printf("I:%d
", i.next());
}
}
}
誰能解釋一下迭代器的意義?如果你能用代碼解釋我,那就太好了.
Can anybody explain the significance of the iterator? It would be wonderful if you could explain me with code.
推薦答案
正如您所說,當您想要在迭代數組內容時刪除內容時使用迭代器.如果您不使用迭代器,而只是有一個 for 循環并在其中使用 remove 方法,您將得到異常,因為在您迭代時數組的內容會發生變化.例如:你可能認為在 for 循環開始時數組大小是 10,但一旦你刪除東西就不會這樣了.所以當你到達最后一個循環時,可能會有 IndexOutofBoundsException 等.
As you have stated iterator is used when you want to remove stuff whilst you iterate over the array contents. If you don't use an iterator but simply have a for loop and inside it use the remove method you will get exceptions because the contents of the array changes while you iterate through. e.g: you might think array size is 10 at the start of the for loop but it wont be the case once you remove stuff.. so when u reach the last loops probably there will be IndexOutofBoundsException etc.
這篇關于為什么我們需要在 Java 中的 ArrayList 上使用迭代器?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!