![](/img/trans.png)
[英]Why removing second last element from arraylist remove method doesn't throw ConcurrentModificationException?
[英]Why doesn't ConcurrentModificationException happen with remove method of LinkedList?
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 相同的代碼會產生此異常,但在 LinkedList 上刪除不會。 為什么會這樣? Add() 和 Offer() 方法仍然產生它。
請注意,不能保證迭代器的快速失敗行為……快速失敗的迭代器會在盡力而為的基礎上拋出
ConcurrentModificationException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.