Является ли итерация коллекции с использованием итератора более эффективной, чем обычная итерация - PullRequest
2 голосов
/ 09 марта 2012

У меня есть коллекция вроде:

  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 Ответ

5 голосов
/ 09 марта 2012

Второй пример - это просто сокращенный синтаксис для первого.По сути, это одно и то же (при условии, что вы вызываете final Object obj = iter.next(); в цикле for).

Синтаксис ярлыков, известный как «для каждого» или «расширенный для», чаще используетсяон чище, интуитивнее и, как отмечает Петер Торок, позволяет избежать потенциальных ошибок.Я рекомендую простой синтаксис, только когда он необходим для большей гибкости.

См. Эту статью для получения дополнительной информации: http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

...