考虑:
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
for (Iterator<String> i = someIterable.iterator(); i.hasNext();) { String item = i.next(); System.out.println(item); }
请注意,如果您需要i.remove();在循环中使用,或以某种方式访问实际的迭代器,则不能使用该for ( : )惯用语,因为实际的迭代器只是推断出来的。
i.remove();
for ( : )
正如 Denis Bueno 所指出的,此代码适用于任何实现Iterableinterface的对象。
Iterable
for (:)此外,如果习语的右侧是 anarray而不是Iterableobject,则内部代码使用 int 索引计数器并进行检查array.length。
for (:)
array
array.length