Iterator与ListIterator的区别

Iterator与ListIterator

  相同点:(1)两者都是fail-fast机制,都是作为内部类实现的。

  区别:二者的区别主要是功能上的;

     (1)Iterator实现了接口Iterator,属性有cursor(下一个要遍历的元素索引),lastRest(上一个遍历元素的索引),

          方法有,hasNext(),next(),remove(),forEachRemainint()(遍历剩下的元素)

     (2)ListIterator继承于Iterator(Itr),并且实现了ListIterator接口,ListIterator构造函数可以穿一个整型参数,表示从指定位置开始遍历;

          并且在Iterator(Itr)的基础上增加了方法hasPrevious(),nextIndex(),previousIndex(),previous() ,set(E e),add(E e);

           对应的功能是:返回是否有遍历过元素,返回下一个要遍历元素的索引,返回上一个遍历元素的索引,返回上一个遍历的元素,修改当前遍历元素的值,在当前遍历的元素后面加入一个元素。

时间: 2024-10-10 19:04:41

Iterator与ListIterator的区别的相关文章

Iterator和ListIterator的区别 ---面试题

Iterator和ListIterator的区别是什么? 下面列出了他们的区别: Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List. Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向. ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等. 原文地址:https://www.cnblogs.com/sixgodbiao/p/9846746

Iterator和ListIterator区别

我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器).使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了. 但是在使用的时候也是有不同的.List和Set都有iterator()来取得其迭代器.对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面: 1. ListIterator有add()方法,可以向L

实例解析Collections源码,Iterator和ListIterator

比如一个视频或文章有多个页面标签设置,我们在看一篇文章或一个视频时,底部有为你推荐栏目. 如何根据这个文章或视频的标签,来实现这个推荐栏目呢. 1 public List<VideoInfoVo> getVideoInfoSix(Integer videoId, Integer sortId) { 2 // 1.获取推荐的六个视频(同一类型的) 3 List<VideoInfoVo> sixList = videoInfoMapper.getVideoInfoSix(videoId

Iterator和Enumeration的区别

本文介绍一下Iterator和Enumeration的区别及其效率 Iterator是一个接口,它的源码如下: package java.util; import java.util.function.Consumer; public interface Iterator<E> { //返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型 boolean hasNext(); //判断容器内是否还有可供访问的元素,返回值是E E next(); //删除迭代器刚越过

java:集合输出之Iterator和ListIterator二

ListIterator是Iterator的子接口,Iterator的最大特点是,能向前,或向后迭代.如果现在要想双向输出的话,则只能使用ListIterator接口,此接口有一个要求,即只能输出List接口里面的内容.因此用到public ListIterator<E> extends Iterator<E>: add(E e): 增加数据 boolean hasNext(); 继承Iterator ,下一个元素是否存在, next(); 继承Iterator,获取下一个元素内容

Iterator 和 ListIterator 对比

Iterator 的方法 //是否还有下一个 boolean hasNext(); //返回下一个 E next(); //移除返回的下一个 void remove(); ListIterator 的方法    红色的三个方法是ListIterator  继承  Iterator boolean hasNext(); E next(); boolean hasPrevious(); E previous(); int nextIndex(); int previousIndex(); void

java:集合输出之Iterator和ListIterator

在调用Iterator集合输出时,如果想要删除某个元素,请直接使用Iterator来判断元素是否存在然后再删除(next()当前指针内容,remove()删除当前内容 );如果在将集合丢给Iterator输出后,再用集合中的删除功能会报错. Iterator集合输出 List<String> allList = new ArrayList<String>(); allList.add("A"); allList.add("B"); allLi

Java中Iterator与Iterable的区别

Iterable的定义: java.lang包 /** * Implementing this interface allows an object to be the target of * the "foreach" statement. * * @param <T> the type of elements returned by the iterator * * @since 1.5 */ public interface Iterable<T> { /

Python 中 Iterator和Iterable的区别

(转载:http://blog.csdn.net/passionkk/article/details/49929887) Python中 list,truple,str,dict这些都可以被迭代,但他们并不是迭代器.为什么? 因为和迭代器相比有一个很大的不同,list/truple/map/dict这些数据的大小是确定的,也就是说有多少事可知的.但迭代器不是,迭代器不知道要执行多少次,所以可以理解为不知道有多少个元素,每调用一次next(),就会往下走一步,是惰性的. 判断是不是可以迭代,用It