Iterator简介:
Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。
LIstIterator简介:
LIstIterator是一个更加强大的Iterator的子类型,它只能用于各种List类的访问
Iterator中的常用方法:
hasNext():boolean
如果迭代器指向位置后面还有元素,则返回 true,否则返回false
next():E
返回集合中Iterator指向位置后面的元素
remove():void
删除集合中Iterator指向位置后面的元素
LIstIterator中的常用方法:
hasNext():boolean
正向遍历list,如果迭代器后面还有元素,则返回 true,否则返回false
next():E
返回list中迭代器指向位置后面的元素
hasPrevious():boolean
逆向遍历list,如果迭代器前面还有元素,则返回 true,否则返回false
previous():E
返回list中迭代器指向位置前面的元素
nextIndex():int
返回list中迭代器位置后面元素的索引
previousIndex():int
返回list中迭代器位置前面元素的索引
remove():void
从list中删除next()或previous()返回的元素
set(E e):void
从list中将next()或previous()返回的元素更改为指定元素e
add(E e):void
将指定的元素插入list,插入位置为迭代器当前位置
异同:
1.相同点
都是迭代器,都可以遍历集合中的元素。
2.区别
-
使用范围不同:Iterator能遍历set、list集合,而ListIterator只能遍历list集合。
-
遍历顺序有区别:ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。
-
是否能定位当前索引位置:ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
-
是否能修改对象:都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。
-
是否能添加对象:ListIterator有add()方法,可以向List中添加对象,而Iterator不能。