zoukankan      html  css  js  c++  java
  • LinkedList方法总结 ListIterator和Iterator的区别

        LinkedList也像ArrayList一样实现了基本的接口,但是它执行某些从操作时比ArrayList更高效,但在随机访问方面要逊色一些。LinkedList中有一些方法虽然名字不同,但可以完成相同的操作,实现相同的功能,其中:

    1、getFirst()和element()完全一样,它们都返回列表的头(第一个元素),并且不移除它,若List为空,则抛出NoSunchElementException。

        peek()方法也是不移除且返回列表的第一个元素,不同之处是List为空时返回null。

    2、remove()和removeFirst()也是一样的,移除并返回列表的第一个元素,若列表为空,抛出NoSunchElementException。

        poll()也是移除并返回列表的第一个元素,若列表为空,返回null。

    3、addFirst()、add()、addLast()相同,它们都将某个元素插入到列表的尾部。

    4、removeLast()移除并返回列表的最后一个元素。

     

    ListIterator和Iterator的区别

    1、迭代器指向的位置是元素之前的位置。

     

     

     

     

     

     

    当使用语句Iterator it=List.Iterator()时,迭代器it指向的位置是Iterator1指向的位置,当执行语句it.next()之后,迭代器指向的位置后移到Iterator2指向的位置。

    二者的不同之处:

    1、使用范围不同,iterator可以应用于所有的集合,Set、List和Map以及这些集合的子类型。而ListIterator只能用于List及其子类型。

    2、ListIterator有add方法,可以向List中添加对象,而Iterator不能。

    3、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向遍历,但是iterator不可以。

    4、ListIterator可以定位当前索引的位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。

    5、都可以实现删除操作,但是ListIterator可以实现对象的修改,set()方法可以实现。Iterator仅能遍历,不能实现修改。

     

  • 相关阅读:
    链接和作用域2 C++快速入门43
    位运算符
    代码编辑器和代码浏览器
    关系运算符
    delphi教程 | 第一个程序
    代码编辑器和代码浏览器
    链接和作用域2 C++快速入门43
    delphi教程 | 第一个程序
    位运算符
    [原创 js] 点击即可修改内容函数
  • 原文地址:https://www.cnblogs.com/qducn/p/6228276.html
Copyright © 2011-2022 走看看