集合-ListIterator类

来源:互联网 发布:软件调整窗口大小 编辑:程序博客网 时间:2024/06/04 19:08

jdk5

java.util
接口 ListIterator<E>

所有超级接口:
Iterator<E>

public interface ListIterator<E>
extends Iterator<E>

系列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表【无法直接定位....】,并获得迭代器在列表中的当前位置。ListIterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。在长度为 n 的列表中,有 n+1 个有效的索引值,从 0n(包含)。

          Element(0)   Element(1)   Element(2)   ... Element(n)           ^            ^            ^            ^               ^ Index: 0            1            2            3               n+1 

注意,remove()set(Object) 方法不是 根据光标位置定义的;它们是根据对调用 next()previous() 所返回的最后一个元素的操作定义的。

此接口是 Java Collections Framework 的成员。

从以下版本开始:
1.2
另请参见:
Collection, List, Iterator, Enumeration

方法摘要
 voidadd(E o)
          将指定的元素插入列表(可选操作)。
 booleanhasNext()
          以正向遍历列表时,如果列表迭代器有多个元素,则返回 true(换句话说,如果 next 返回一个元素而不是抛出异常,则返回 true)。
 booleanhasPrevious()
          如果以反向遍历列表,列表迭代器有多个元素,则返回 true
 Enext()
          返回列表中的下一个元素。
 intnextIndex()
          返回对 next 的后续调用所返回元素的索引。
 Eprevious()
          返回列表中的前一个元素。
 intpreviousIndex()
          返回对 previous 的后续调用所返回元素的索引。
 voidremove()
          从列表中移除由 nextprevious 返回的最后一个元素(可选操作)。
 voidset(E o)
          用指定元素替换 nextprevious 返回的最后一个元素(可选操作)。
 

方法详细信息

hasNext

boolean hasNext()
以正向遍历列表时,如果列表迭代器有多个元素,则返回 true(换句话说,如果 next 返回一个元素而不是抛出异常,则返回 true)。

指定者:
接口 Iterator<E> 中的 hasNext
返回:
如果以正向遍历列表,列表迭代器有多个元素,则返回 true

next

E next()
返回列表中的下一个元素。可以重复调用此方法来迭代此列表,或混合调用 previous 来前后移动(注意交替调用 nextprevious 将重复返回相同的元素)。

指定者:
接口 Iterator<E> 中的 next
返回:
列表中的下一个元素。
抛出:
NoSuchElementException - 如果没有可迭代的下一个元素。

hasPrevious

boolean hasPrevious()
如果以反向遍历列表,列表迭代器有多个元素,则返回 true。(换句话说,如果 previous 返回一个元素而不是抛出异常,则返回 true)。

返回:
如果以反向遍历列表,列表迭代器有多个元素,则返回 true

previous

E previous()
返回列表中的前一个元素。可以重复调用此方法来迭代列表,或混合调用 next 来前后移动(注意交替调用 nextprevious 将重复返回相同的元素)。

返回:
列表中的上一个元素。
抛出:
NoSuchElementException - 如果没有可迭代的上一个元素。

nextIndex

int nextIndex()
返回对 next 的后续调用所返回元素的索引。(如果列表迭代器在列表的结尾,则返回列表的大小)。

返回:
next 的后续调用所返回元素的索引,如果列表迭代器在列表的结尾,则返回列表大小。

previousIndex

int previousIndex()
返回对 previous 的后续调用所返回元素的索引。(如果列表迭代器在列表的开始,则返回 -1)。

返回:
previous 的后续调用所返回元素的索引,如果列表迭代器在列表的开始,则返回 -1。

remove

void remove()
从列表中移除由 nextprevious 返回的最后一个元素(可选操作)。对于每个 nextprevious 调用,只能执行一次此调用。只有在最后一次调用 nextprevious 之后,尚未调用 ListIterator.add 时才可以执行该调用。

指定者:
接口 Iterator<E> 中的 remove
抛出:
UnsupportedOperationException - 如果列表迭代器不支持 remove 操作。
IllegalStateException - 既没有调用 next 也没有调用 previous,或者在最后一次调用 nextprevious 后调用了 removeadd

set

void set(E o)
用指定元素替换 nextprevious 返回的最后一个元素(可选操作)。只有在最后一次调用 nextprevious 后既没有调用 ListIterator.remove 也没有调用 ListIterator.add 时才可以进行该调用。

参数:
o - 用于替换 nextprevious 返回的最后一个元素的元素。
抛出:
UnsupportedOperationException - 如果列表迭代器不支持 set 操作。
ClassCastException - 如果指定元素的类不允许该元素添加到此列表。
IllegalArgumentException - 如果指定元素的某个方面不允许该元素添加到此列表。
IllegalStateException - 如果既没有调用 next 也没有调用 previous,或者在最后一次调用 nextprevious 后调用了 removeadd

add

void add(E o)
将指定的元素插入列表(可选操作)。该元素直接插入到 next 返回的下一个元素的前面(如果有),或者 previous 返回的下一个元素之后(如果有);如果列表没有元素,那么新元素就成为列表中的惟一元素。新元素被插入到隐式光标前:不影响对 next 的后续调用,并且对 previous 的后续调用会返回此新元素(此调用把调用 nextIndexpreviousIndex 所返回的值增加 1)。

参数:
o - 要插入的元素。
抛出:
UnsupportedOperationException - 如果列表迭代器不支持 add 操作。
ClassCastException - 如果指定元素的类不允许该元素添加到此列表。
IllegalArgumentException - 如果此元素的某个方面不允许该元素添加到此列表。
原创粉丝点击