TGViewer
Java задачи с собеседований Java задачи с собеседований @javaquiz · 5.71K subscribers
Post #2267 1.03K
➡️ Использование Iterator для перебора List

В Java есть несколько способов перебрать список: цикл for с индексом, расширенный for и Iterator. Раньше я использовал цикл for с методом get(), как показано ниже:

for (int i = 0; i < list.size(); i++) {
String name = list.get(i);
}

🗣️ Этот метод работает для ArrayList, но если список — это LinkedList или другая реализация без поддержки случайного доступа, время выполнения увеличится до O(N^2), потому что get() для LinkedList имеет O(n) сложность.

Кроме того, при использовании циклов может возникнуть ошибка в многопоточном режиме, например, при работе с CopyOnWriteArrayList, когда один поток изменяет список, а другой пытается получить доступ к элементам, что может привести к IndexOutOfBoundsException.

✔️ Лучше использовать Iterator, который является стандартным способом перебора списка:

Iterator itr = list.iterator();

while (itr.hasNext()) {
String name = itr.next();
}

Это безопаснее и предотвращает непредсказуемое поведение.

👩‍💻

@javaquiz
  • 👍 6
  • 🔥 1
More from @javaquiz
  1. Sep 29, 2026Post #2702
  2. Sep 29, 2026Подключить ИИ к среде разработки — ещё не значит получить полезного помощника. Нужно выбра…
  3. Sep 28, 2026Post #2700
  4. Sep 14, 2026❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его исполь…
  5. Sep 4, 2026⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это…
  6. Aug 17, 2026➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений Quarkus — оптимизированный фре…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →