Встречается на собеседованиях • сегодня

В чем разница между Enumeration и Iterator

`Enumeration` и `Iterator` оба используются для обхода коллекций, но `Iterator` — более современный и функциональный интерфейс. **Ключевые различия:** 1. **Методы:** - `Enumeration`: `hasMoreElements()`, `nextElement()`. - `Iterator`: `hasNext()`, `next()`, `remove()`. 2. **Удаление элементов:** - `Iterator` позволяет удалять элементы методом `remove()`, а `Enumeration` — нет. 3. **Fail-fast:** - `Iterator` выбрасывает `ConcurrentModificationException`, если коллекция изменяется во время итерации (кроме `remove()`). **Пример:** ```java List list = new ArrayList<>(List.of("A", "B", "C")); // Iterator Iterator it = list.iterator(); while (it.hasNext()) { String elem = it.next(); if (elem.equals("B")) it.remove(); // Удаление возможно } // Enumeration (устаревший, обычно в Vector/Hashtable) Enumeration en = Collections.enumeration(list); while (en.hasMoreElements()) { String elem = en.nextElement(); // en.remove() — нет такого метода! } ``` **Вывод:** `Iterator` предпочтительнее из-за поддержки удаления и fail-fast поведения.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы