Встречается на собеседованиях • сегодня
В чем разница между 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 поведения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы