Deque<Employee> employeeDeque = new LinkedList<>();
employeeDeque.offerLast(new Employee("Michael", 250));
employeeDeque.offerLast(new Employee("John", 250));
Iterator iterator = employeeDeque.iterator();
while (iterator.hasNext()) {
iterator.next();
employeeDeque.remove(new Employee("Michael", 250));
}
Такой же код с ArrayList выкинет ошибку, но remove() на LinkedList во время итерации ее не провоцирует.
При изменение коллекции при помощи Add() и Offer() ConcurrentModificationException кидается сразу же.
Почему remove() такой особенный при работе с LinkedList?