美文网首页
java面试题-Iterator和ListIterator区别

java面试题-Iterator和ListIterator区别

作者: 萤火之森ss | 来源:发表于2017-08-12 14:56 被阅读169次

    Iterator<E>和ListIterator<E>都是接口,只是ListIterator继承Iterator接口,

    对于实现了Collection的类都能使用Iterator,但是只有List接口的下的实现类才能使用ListIterator。

    图中,0,1,2,3是迭代器的移动位置,初始的时候位于0,next后返回w元素,迭代器位于1位置

    Iterator接口中常用方法有

    booleanhasNext();
    Enext();
    remove();

    ListIterator中多了如下方法

    boolean hasPrevious();//此方法意思为,迭代器的位置前面是否还有元素
    E previous();//和next一样,返回迭代器越过的元素
    int nextIndex();//返回迭代器位置的下一个元素下标
    int previousIndex();//返回迭代器位置的上一个元素的下标
    void set(Ee);//修改next或者previous方法越过的返回元素
    void add(Ee);//和Collection.add是添加到列表的尾部,这里的add是添加到迭代器位置,

    set()方法例子:

    List list =newLinkedList();

    list.add("wang");

    list.add("jian");

    list.add("xin");

    ListIterator listit = list.listIterator();

    listit.next(); //wang

    listit.next();//jian

    listit.previous();//jian

    listit.previous();//wang

    listit.set("1");//修改wang元素

    System.out.println(list);

    输出:[1, jian, xin]

    add()方法例子:

    ListIterator listit = list.listIterator();

    listit.next();//返回wang

    listit.add("1");

    System.out.println(list);

    输出:[wang, 1, jian, xin]

    相关文章

      网友评论

          本文标题:java面试题-Iterator和ListIterator区别

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