使用迭代器迭代集合是否比普通迭代更有效

时间:2012-03-09 15:16:42

标签: java collections iterator

我有一个如下的集合:

  final List list = new ArrayList(3);

做下面的事情是否有效

    for (final Iterator iter = list.iterator(); iter.hasNext();)
    {
        // do something
    }

OR

for(final Object obj : list){
// do something 
}

1 个答案:

答案 0 :(得分:5)

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

更常用的是快捷语法,称为“for-each”或“enhanced for”,因为它更干净,更直观,并且Péter Török notes可以避免潜在的错误。我只推荐使用简单的语法,因为它具有更大的灵活性。

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