Если я использую цикл for (стандартный цикл for, а не расширенный оператор for), я не вижу, как итератор увеличивает эффективность при поиске в коллекции. Если у меня есть такой оператор, как:
(Предполагая, что aList - это список общих объектов, тип E, nextElement относится к следующему элементу в списке)
for (int index = 0; index < aList.size(); index++){
E nextElement = aList.get(index);
// do something with nextElement...
}
и у меня есть метод get это выглядит примерно так:
Node<E> nodeRef = head;
for (int i = 0; i < index; i++){
nodeRef = nodeRef.next;
// possible other code
}
это, по сути, поиск в списке, по одному элементу за раз. Однако, если я использую итератор, не будет ли он выполнять ту же операцию? Я знаю, что итератор должен иметь скорость O (1), но разве это не будет O (n), если ему все равно придется искать по всему списку?