一、迭代器Iterator的特点:
只能单向遍历,但是更加安全,因为在使用迭代器遍历时,若集合元素被更改,会抛出ConcurrentModificationException。
二、在遍历时移除集合元素:使用 Iterator.remove() 方法,不能直接删除,因为遍历时集合不允许被更改。
例如:
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
*// do something*
it.remove();
}
三、Iterator 和 ListIterator 区别
Iterator 可以遍历 Set 和 List 集合,而 ListIterator 只能遍历 List。
Iterator 只能单向遍历,而 ListIterator 可以双向遍历(向前/后遍历)。
ListIterator 实现 Iterator 接口,然后添加了一些额外的功能,比如添加一个元素、替换一个元 素、获取前面或后面元素的索引位置。