junior
Какие существуют способы перебирать элементы списка
Существуют четыре основных способа перебора элементов List.
Цикл for-each (рекомендуемый):
Пример
for (String element : list) {
// element
}
Итератор:
Пример
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
}
Индексный цикл for (только для RandomAccess-списков):
Пример
for (int i = 0; i < list.size(); i++) {
list.get(i);
}
forEach с лямбдой (Java 8+):
Пример
list.forEach(element -> System.out.println(element));
Индексный цикл эффективен для ArrayList (RandomAccess), но для LinkedList приведет к O(N^2), т.к. каждый get(i) — это O(N). Для LinkedList следует использовать итератор или for-each.
На собеседовании: перечислите все четыре способа. Обязательно упомяните, что индексный цикл опасен для LinkedList (O(N^2) vs O(N) у итератора).