TGViewer
Java Learning Java Learning @java_per_month · 16.5K subscribers
Post #2728 2.28K
➡️ Использование 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<String> itr = list.iterator();

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


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

Java Learning 👩‍💻
  • 👍 16
  • ❤ 1
More from @java_per_month
  1. Oct 6, 2026🤺 Почему ты получаешь отказ после «норм собеса»? Дело не в знаниях — ты просто не знаешь,…
  2. Oct 6, 2026⚙️ Set.retainAll() В Java метод Set.retainAll() позволяет оставить только те элементы множ…
  3. Sep 14, 2026❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его исполь…
  4. Sep 4, 2026⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это…
  5. Sep 1, 2026🔴 Завтра тестовое собеседование с Java-разработчиком 2 сентября(уже завтра!) в 19:00 по м…
  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 →