Words about 'fail-fast' of iterator

简介:
An iterator throws  ConcurrentModificationException, it usually under the following two situations:
 
1.In multithreaded processing: if one thread is trying to modify a Collection while another thread is iterating over it.
 
2.In single-threaded or in multithreaded processing: if after the creation of the Iterator, the container is modified at any time by any method other than the Iterator's own remove or add methods.
 
 
The Iterators supported by all the work-horse container classes, such as ArrayList, LinkedList, TreeSet, and HashSet, are fail-fast. The Iterator type retrofitted to the older container class Vector is also fail-fast.
 
For associative containers, such as HashMap and the older HashTable, the Iterator type for the Collections corresponding to either the keys or the values or the <key, value> pairs are fail-fast with respect to the container itself. That means that even if you are iterating over, say, just the keys of the container, any illegal concurrent modifications to the underlying container would be detected.
 
One final note regarding iterators versus enumerations: It is also possible to use an Enumeration object returned by the elements() method for iterating over the older container types such as Vector. However, Enumerations do not provide a fail-fast method.
 
On the other hand, the more modern Iterator returned by a Vector's iterator() and listIterator() methods are fail-fast. Hence, iterators are recommended over enumerations for iterating over the elements of the older container types.
 
More info contact me by MSN:danni-505@hotmail.com



     本文转自danni505 51CTO博客,原文链接:http://blog.51cto.com/danni505/343872 ,如需转载请自行联系原作者

相关文章
|
8月前
|
Java 容器
Iterator_fail-fast和Iterator_fail-safe~
Iterator_fail-fast和Iterator_fail-safe~
|
8月前
|
Java
什么是fail-fast
什么是fail-fast
29 0
|
8月前
|
监控 安全
故事会【Fail-safe和Fail-fast】
故事会【Fail-safe和Fail-fast】
|
9月前
💡 为何要 iter.remove()
💡 为何要 iter.remove()
34 0
|
10月前
|
安全 Java 容器
什么是fail-fast和fail-safe?
本章讲解了什么是fail-fast和fail-safe,以及如何解决
75 0
|
人工智能
Remove Smallest
Remove Smallest
63 0
Remove Smallest