`
jackroomage
  • 浏览: 1197930 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Iterator和listIterator的区别

 
阅读更多

我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。

但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面:

1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能

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

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

4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。

因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。其实,数组对象也可以用迭代器来实现。

 

   public static void iterManipulation(List a){
    ListIterator it = a.listIterator();
    for(int i=1; i<=a.size();i++){
        System.out.println(it.nextIndex()+"--->"+it.next());

    }
    System.out.println("--------------------------------");
    while(it.hasPrevious()){
       System.out.println(it.previousIndex()+"------>"+it.previous());
    }
   
   }

 

 

结果:

0--->ALGERIA
1--->ANGOLA
2--->BENIN
3--->BOTSWANA
4--->BURKINA FASO
5--->BURUNDI
6--->CAMEROON
7--->CAPE VERDE
8--->CENTRAL AFRICAN REPUBLIC
9--->CHAD
--------------------------------
9------>CHAD
8------>CENTRAL AFRICAN REPUBLIC
7------>CAPE VERDE
6------>CAMEROON
5------>BURUNDI
4------>BURKINA FASO
3------>BOTSWANA
2------>BENIN
1------>ANGOLA
0------>ALGERIA

分享到:
评论

相关推荐

    java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java中Iterator和ListIterator实例详解

    主要介绍了java中Iterator和ListIterator实例详解,具有一定借鉴价值,需要的朋友可以参考下。

    JAVA中ListIterator和Iterator详解与辨析(推荐)

    主要介绍了JAVA中ListIterator和Iterator详解与辨析,需要的朋友可以参考下

    java Iterator接口和LIstIterator接口分析

    主要介绍了java Iterator接口和LIstIterator接口分析的相关资料,需要的朋友可以参考下

    Java 最常见的 208 道面试题:第二模块答案

    Java 最常见的 208 道面试题:第二模块答案 18. java 容器都有哪些? 19. Collection 和 Collections 有什么区别? 20. List、 Set、 Map 之间的区别是什么?...33. Iterator 和 ListIterator 有什么区别?

    Java期末复习-类集框架

    Java类集框架 最大单值操作父接口Collection及其子接口、子类: List接口、ArrayList类、...Iterator、ListIterator、foreach、废除的Enumeration Collections工具类 Comparable接口、equals()方法、hashCode()方法

    JDKAPI18CN(中文版)

    该size,isEmpty,get,set,iterator和listIterator操作在固定时间内运行。 add操作以摊余常数运行 ,即添加n个元素需要O(n)个时间。 所有其他操作都以线性时间运行(粗略地说)。 与LinkedList实施相比,常数...

    面试官都扯不过你系列之集合框架类总结

    什么是迭代器iterator和ListIterator的区别Collection和Collections的区别Comparable和Compartor接口是干什么,列出区别heap 和stack 有什么区别如何确保一个集合不会被修改CollectionListArray与ArrayList有什么...

    Java集合容器面试题(2020最新版)

    文章目录集合容器概述什么是集合集合的特点集合和数组的区别使用集合框架的好处常用的集合类有哪些?List,Set,Map三者的区别?List、Set、Map 是否继承自 Collection 接口?...Iterator 和 ListIterator 有什么区别?

    Java系列Iterator

    Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。 ———————————————— 版权声明:本文为CSDN博主「网络冒险家」的原创文章,遵循CC 4.0 BY...

    Design Patterns Elements of Reusable Object-Oriented Software

    [Table of Contents] Preface to Book Foreword Guide to Readers Introduction • What Is a Design Pattern?...• Design Patterns in Smalltalk ...• ListIterator • Point • Rect Bibliography Index

    Java集合面试题.docx

    1. Java 集合框架是什么?说出一些集合框架的优点? 2. 集合框架中的泛型有什么优点? 3. Java 集合框架的基础接口有哪些? ...为何 Collection 不从 ...10. Iterater 和 ListIterator 之间有什么区别? .... ... ...

    超全Java集合框架讲解.md

    - Iterator Iterable ListIterator - Map 和 Collection 接口 - Map 集合体系详解 - HashMap - LinkedHashMap - TreeMap - WeakHashMap - Hashtable - Collection 集合体系详解 - Set 接口 - AbstractSet...

    ListIterator接口

    NULL 博文链接:https://chaoyi.iteye.com/blog/2085157

    Java Iterator(迭代器)

    Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。 迭代器 it 的两个基本操作是 next 、hasNext 和 remove。 调用 it.next() 会返回迭代器的下一个元素,...

    java使用listIterator逆序arraylist示例分享

    对于列表而言,除了Iterator,还提供了一个功能更加强大的ListIterator。它可以实现逆序遍历列表中的元素。本示例将使用其逆序遍历ArrayList

    java容器大全(java基础篇)

    本文目录java容器介绍泛型的简单介绍Comparable和ComparatorCollectionListArrayListLinkedListVectorSetHashSetLinkedHashSet+ComparableTreeSetQueueLinkedListArrayQueuePriorityQueueStackMapHashMapTreeMap容器...

    史上最全java面试,103项重点知识,带目录

    33. Iterator 和 ListIterator 有什么区别? 13 三、多线程 13 35. 并行和并发有什么区别? 13 36. 线程和进程的区别? 14 37. 守护线程是什么? 14 38. 创建线程有哪几种方式? 14 39. 说一下 runnable 和 callable...

    ArrayList.java

    此类的返回的迭代器 iterator和listIterator方法是快速失败的 :如果列表在任何时间从结构上修改创建迭代器之后,以任何方式,除了通过迭代器自身的remove或add方法,迭代器都将抛出ConcurrentModificationException...

    Java集合类中文介绍

    本文首先对Java集合类框架做了简单说明,之后对主要类和为API做了介绍:Collection、List、Set、AbstractCollection、AbstractList、AbstractSet、Iterator、ListIterator。

Global site tag (gtag.js) - Google Analytics