21.Iterator和Listlterator的区别是什么?
下面列出了他们的区别:
Iterator可用来比那里Set和List集合,但是ListIterator只能用来遍历List
Iterator对集合只能是前向遍历,ListIteratorj既可以前向也可以后向。
ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。
22.快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
快速失败:当你在迭代一个集合的时候,如果有另一个线程正在修改你正在访问的那个集合时,就会抛出ConcurrentModifiacation异常。在java.util包下的都是快速失败。
安全失败:你在迭代的时候会去底层集合做一个拷贝,所以你在修改上层集合的时候是不会受影响的,不会抛出ConcurrentModification异常。在java.util.concurrent包下的全是安全失败的。
原文地址:https://www.cnblogs.com/JAYPARK/p/10585866.html
时间: 2024-10-30 10:24:52