美文网首页
java 集合迭代器 ListIterator

java 集合迭代器 ListIterator

作者: 王占刚 | 来源:发表于2018-10-03 11:47 被阅读0次

    根据官方文档介绍, ListIterator 有以下功能:

    1. 允许我们向前、向后两个方向遍历 List;
    2. 在遍历时修改 List 的元素;
    3. 遍历时获取迭代器当前游标所在位置。

    注意,迭代器 没有当前所在元素一说,它只有一个游标( cursor )的概念,这个游标总是在元素之间

    注意,迭代器 没有当前所在元素一说,它只有一个游标( cursor )的概念,这个游标总是在元素之间;

    比如 集合元素有1、2、3、4、5;
    初始游标就在1的前边
    当调用next()游标后移一位
    调用orevious()游标回到当前位置
    遍历完元素后 游标会在最后一个元素的后边
    也就是说如果集合长度为N 那么游标的位置就有N+1个


    ListIterator 继承自Iterator ,在Iterator 的基础上添加了6个方法

    void hasPrevious()

    判断游标前面是否有元素;

    Object previous()

    返回游标前面的元素,同时游标前移一位。游标前没有元素就报 java.util.NoSuchElementException 的错,所以使用前最好判断一下;

    int nextIndex()

    返回游标后边元素的索引位置,初始为 0 ;遍历 N 个元素结束时为 N;

    int previousIndex()

    返回游标前面元素的位置,初始时为 -1,同时报 java.util.NoSuchElementException 错;

    void add(E)

    在游标 前面 插入一个元素
    注意,是前面

    void set(E)

    更新迭代器最后一次操作的元素为 E,也就是更新最后一次调用 next() 或者 previous() 返回 的元素。
    注意,当没有迭代,也就是没有调用 next() 或者 previous() 直接调用 set 时会报 java.lang.IllegalStateException 错;

    void remove()

    删除迭代器最后一次操作的元素,注意事项和 set 一样。


    ListIterator 有两种获取方式

    • List.listIterator()
    • List.listIterator(int location)

    区别在于第二种可以指定 游标的所在位置。

    相关文章

      网友评论

          本文标题:java 集合迭代器 ListIterator

          本文链接:https://www.haomeiwen.com/subject/ffyzoftx.html