Iterator 和 ListIterator 有什么区别?
答:
ListIterator 继承 Iterator,且比 Iterator 有更多方法。
- add(E e) 将指定的元素插入列表,插入位置为迭代器当前位置之前
- set(E e) 迭代器返回的最后一个元素替换参数e
- hasPrevious() 迭代器当前位置,反向遍历集合是否含有元素
- previous() 迭代器当前位置,反向遍历集合,下一个元素
- previousIndex() 迭代器当前位置,反向遍历集合,返回下一个元素的下标
- nextIndex() 迭代器当前位置,返回下一个元素的下标
区别:
-
使用范围不同,Iterator可以迭代所有集合;ListIterator 只能用于List及其子类。
-
ListIterator 有 add 方法,可以向 List 中添加对象;Iterator 不能
-
ListIterator 有 set()方法,可以实现对 List 的修改;Iterator 仅能遍历,不能修改
-
ListIterator 有 hasPrevious() 和 previous() 方法,可以实现逆向遍历;Iterator不能
-
ListIterator 有 nextIndex() 和previousIndex() 方法,可定位当前索引的位置;Iterator不能