2013-07-11 74 views
-1

我找不出這個方法做什麼。有人可以解釋嗎?ArrayList方法:iterator()

例子:

for (Iterator ite = list.iterator(); ite.hasNext();) 

謝謝,我剛開始學習java。目前9年級。

+2

我不想投票給你,但谷歌的方法,並閱讀javadoc。說謝謝,並提供無用的信息被認爲是噪音,因爲它不能幫助你或我們。 –

+0

這是一個'for'循環,像'for(initialization; termination; increment)' – nachokk

回答

0

它只是用一個迭代器「讀取」列表(如果你想在閱讀時從列表中移除元素,這很有用)。

您可以從迭代器獲取的元素

Item item = ite.next(); 

,如果你想從列表中刪除的項目,你可以做簡單的

ite.remove(); 

你也可以遍歷列表也更簡單了像

for (Item item : list) { 
    System.out.println(item.toString()); 
} 

for (int i = 0; i<list.size(); i++) { 
    Item item = list.get(i); 
    System.out.println(item.toString()); 
} 

但這些,如果你嘗試做list.remove(item)list.remove(i)你會引發異常(ConcurrentModificationException的,如果我沒有錯)。

0

在一個非常基本的層次上,迭代器「遍歷」列表直到它結束。因此,在該方法中,您正在創建一個指向列表中的一個對象的對象。當您在迭代器上調用next()時,它將移至列表中的下一個對象。當你在迭代器上調用hasNext()時,你問的是迭代器是否有其他地方去,或者它是否在列表的末尾。如果迭代器具有next(),則hasNext()將返回true,否則返回false。

你可能要爲這樣的循環創建:

for (Iterator iter = list.iterator(); iter.hasNext(); iter.next()) 

其創建列表中的新的迭代器(第一個元素)。每次循環返回時,它都會調用iter.next(),它使迭代器指向列表中的下一個元素。當你到達列表的末尾時,iter.hasNext()不再是真實的,因此循環中斷。

總之,你只是創建一個循環遍歷列表的每個元素。