每个循环的Java如何工作?

问题:

考虑:

List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
    System.out.println(item);
}

在不使用for each语法的情况下,等效的for循环是什么样的?

回答:

for (Iterator<String> i = someList.iterator(); i.hasNext();) {
    String item = i.next();
    System.out.println(item);
}

请注意,如果您需要在循环中使用i.remove();,或以某种方式访问​​实际的迭代器,则不能使用for ( : )成语,因为仅推断实际的迭代器。
如Denis Bueno所述,此代码适用于实现Iterable interface的任何对象
另外,如果for (:)成语的右侧是array而不是Iterable对象,内部代码使用一个int索引计数器,而不是array.length。参见Java Language Specification

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How does the Java for each loop work?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

75 − = 73