| Describe term Fail-Fast and Fail-Safe Iterators in Java?
First we should calrify that Iterators in Java are used to iterate over the collection of objects.
(1)Fail-Fast Iterators:- When there is any modification happen in structural of collection Fail-fast iterators immediately raise ConcurrentModificationException. Here structural modification means adding, removing any of the elemnt from collection while a thread is iterating over that collection. And for example we have ArrayList, HashMap classes are example of Fail-Fast Iterator.
(2)Fail-Safe Iterators:-On the other hand Fail-Safe iterators not throw any exceptions if any of collection is structurally modified while iterating over it. The reason behind is that it operate on the clone of collection not on the original collection. And that is the reason it is called Fail-Safe iterators. And for example we have CopyOnWriteArrayList, ConcurrentHashMap classes are examples of fail-safe Iterator | | |