1、公共接口ListIterator<E>继承自Iterator<E>。
2、列表迭代器允许程序员从列表两端的任意一端遍历列表,在迭代过程中修改列表,并且可以获得列表中迭代器的当前位置。列表迭代器ListIterator是没有当前元素的,它的游标位置总是位于(要求被返回的前一个元素)和(要求被返回的后一个元素)之间[个人理解例子:数字*2*3*4*5*6*,中的*即为游标位置,总是位于两个数字之间]。故列表长度为N的迭代器拥有(N+1)个可能的游标位置,如前面数字例子中的*,总比数字多一个。
注意:就游标位置而言,remove()和set()方法是没有被定义的;这两个方法定义于:最后一个由next()方法或者prvious()方法返回的元素上。
这个接口是java集合框架中的一员。
3、方法总结:
方法类型 | 方法描述 |
void | add() 插入列表规定的元素 |
boolean | hasNext() 向前遍历列表时,如果列表有下一个元素则返回true |
boolean | hasPrevious() 反向遍历列表时,如果列表有下一个元素则返回true |
E | next() 返回列表的下一个元素,并且游标前进一个单位 |
int | nextIndex() 返回:顺序访问next()元素的索引值 |
E | previous() 返回列表的前一个元素,并且游标后退一个位置 |
int | priviousIndex() 返回:顺序访问previous()元素的索引值 |
void | remove() 移除一个元素,该元素由next()方法或者previous()方法返回的最后一个元素。 |
void | set() 替换元素,该元素由next()方法或者previous()方法返回的最后一个元素。 |
4、方法异常抛出类型
next():NoSuchElementException
-元素不存在。
previous():NoSuchElementException
-元素不存在。
remove():UnsupportedOperationException-移除操作不被列表迭代器支持。
IllegalStateException
-在调用本方法前,并未调用next()或者previous()方法;或者在最后一次调用next()或previous() 方法后已经调用过。
set():UnsupportedOperationException-异常操作不被列表迭代器支持。
ClassCastException
-替代元素类型和指定列表允许的元素类型不匹配。
IllegalArgumentException-参数类型和指定列表允许的元素类型不匹配。
IllegalStateException-在调用本方法前,并未调用next()或者previous()方法;或者在最后一次调用next()或previous() 方法后已经调用过。
add():UnsupportedOperationException-添加方法不备列表迭代器支持。
ClassCastException
-添加元素类型和指定列表允许的元素类型不匹配。
IllegalArgumentException
-参数类型和指定列表允许的元素类型不匹配。