Я знаю, что переборе LinkedList с помощьюРазличие в Переборе связных списков
for(int i = 0; i < list.size(); i++){
Item item = list.get(i);
}
, чтобы получить отдельные объекты имеют плохую производительность, как каждый вызов .get (я) перебирает от начала списка до я.
Правильный способ использования Итератора. Все идет нормально.
Но что об этом стиле:
for(Item item : list){
// item is already here
}
ли это иметь такую же производительность, как с помощью итераторов? Как это работает внутри страны?
Вы можете реализовать LinkedList w hich не имеет плохой производительности, используя старый стиль loop и list.get (i). Просто кешируйте последний доступ к узлу в надежде, что следующий вызов будет непосредственно следующим узлом в списке.Это приведет к аналогичной производительности, такой как использование итератора. – MrSmith42
Возможный дубликат [Как работает Java для каждого цикла?] (Http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work) –