使用迭代器迭代集合是否比正常迭代更有效

Sau*_*mar 2 java collections iterator

我有一个如下集合:

  final List list = new ArrayList(3);
Run Code Online (Sandbox Code Playgroud)

做下面这样的事情是否有效

    for (final Iterator iter = list.iterator(); iter.hasNext();)
    {
        // do something
    }
Run Code Online (Sandbox Code Playgroud)

要么

for(final Object obj : list){
// do something 
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*ora 5

第二个示例只是第一个示例的快捷语法.它们基本上是相同的(假设你final Object obj = iter.next();for循环中调用).

这种快捷语法被称为"for-each"或"enhanced for",因为它更干净,更直观,并且正如PéterTörök所说,避免了潜在的错误,因此更常用.我只推荐使用简单的语法,因为它具有更大的灵活性.

有关更多信息,请参阅此文章:http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html