集合知识点总结

Catalogue   

通过迭代器fail-fast属性,你明白了什么?

每次我们尝试获取下一个元素的时候,Iterator fail- fast属性检查当前集合结构里的任何改动。如果发现任何改动,它抛出 ConcurrentModificationException。
Collection中所有Iterator的实现都是按fail-fast来设计的(ConcurrentHashMap和CopyOnWriteArrayList这类并发集合类除外)


fail-fast与fail-safe有什么区别?

Iterator的fail-fast属性与当前的集合共同起作用,因此它不会 受到集合中任何改动的影响。Java.util包中的所有集合类都被设计为fail-fast的,
而 java.util.concurrent中的集合类都为fail-safe的。Fail-fast迭代器抛出 ConcurrentModificationException,
而 fail-safe 迭 代 器 从 不 抛 出 ConcurrentModificationException。