-1

我无法找出这种方法的作用。有人可以解释一下吗?

例子:

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

谢谢,刚开始学java。目前9年级。

4

2 回答 2

0

它只是使用迭代器“读取”列表(如果您想在读取时从列表中删除元素,这很有用)。

您可以从迭代器中获取一个元素

Item item = ite.next();

如果你想从列表中删除该项目,你可以简单地做

ite.remove();

您也可以使用更简单的 for 循环列表,例如

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)。

于 2013-07-11T20:07:37.823 回答
0

在一个非常基本的级别上,迭代器“遍历”列表直到它到达末尾。因此,在该方法中,您正在创建一个指向列表中一个对象的对象。当您调用next()迭代器时,它会移动到列表中的下一个对象。当你调用hasNext()迭代器时,你是在询问迭代器是否还有其他地方可以去,或者它是否在列表的末尾。 hasNext()如果迭代器有 a 则返回 true,next()否则返回 false。

您可能希望像这样创建您的 for 循环:

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

它为列表(第一个元素)创建了一个新的迭代器。每次循环返回时,它都会调用iter.next()which 使迭代器指向列表中的下一个元素。当您到达列表的末尾时,iter.hasNext()不再是真的,因此循环中断。

简而言之,您只是创建了一个遍历列表中每个元素的 for 循环。

于 2013-07-11T20:15:05.390 回答