我无法找出这种方法的作用。有人可以解释一下吗?
例子:
for (Iterator ite = list.iterator(); ite.hasNext(); )
谢谢,刚开始学java。目前9年级。
它只是使用迭代器“读取”列表(如果您想在读取时从列表中删除元素,这很有用)。
您可以从迭代器中获取一个元素
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)。
在一个非常基本的级别上,迭代器“遍历”列表直到它到达末尾。因此,在该方法中,您正在创建一个指向列表中一个对象的对象。当您调用next()
迭代器时,它会移动到列表中的下一个对象。当你调用hasNext()
迭代器时,你是在询问迭代器是否还有其他地方可以去,或者它是否在列表的末尾。 hasNext()
如果迭代器有 a 则返回 true,next()
否则返回 false。
您可能希望像这样创建您的 for 循环:
for ( Iterator iter = list.iterator(); iter.hasNext(); iter.next() )
它为列表(第一个元素)创建了一个新的迭代器。每次循环返回时,它都会调用iter.next()
which 使迭代器指向列表中的下一个元素。当您到达列表的末尾时,iter.hasNext()
不再是真的,因此循环中断。
简而言之,您只是创建了一个遍历列表中每个元素的 for 循环。