java面试题-Iterator和ListIterator区别

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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 第十天 权限修饰符 public protected default private 同一类 true true ...
    炙冰阅读 560评论 0 1
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,525评论 0 3
  • 1 场景问题# 1.1 工资表数据的整合## 考虑这样一个实际应用:整合工资表数据。 这个项目的背景是这样的,项目...
    七寸知架构阅读 2,581评论 0 53
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,916评论 0 2