2013-07-11 100 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()不再是真实的,因此循环中断。

总之,你只是创建一个循环遍历列表的每个元素。