为什么80%的码农都做不了架构师?>>>   

首先ListItr实现了ListIterator接口并继承了Itr,也就说明了ListItr具备ListIterator的所有功能。 ListIterator是Iterator的子类,它只能用于List类的访问。Iterator只能单向移动,而ListIterator可以双向移动,而且还拥有了set和add功能。 ListItr还允许你从数组的任意位置开始迭代。 以下是ListItr的源码:

private class ListItr extends Itr implements ListIterator<E> {ListItr(int index) {super();cursor = index;}public boolean hasPrevious() {return cursor != 0;}public int nextIndex() {return cursor;}public int previousIndex() {return cursor - 1;}@SuppressWarnings("unchecked")public E previous() {checkForComodification();int i = cursor - 1;if (i < 0)throw new NoSuchElementException();Object[] elementData = ArrayList.this.elementData;if (i >= elementData.length)throw new ConcurrentModificationException();cursor = i;return (E) elementData[lastRet = i];}public void set(E e) {if (lastRet < 0)throw new IllegalStateException();checkForComodification();try {ArrayList.this.set(lastRet, e);} catch (IndexOutOfBoundsException ex) {throw new ConcurrentModificationException();}}public void add(E e) {checkForComodification();try {int i = cursor;ArrayList.this.add(i, e);cursor = i + 1;lastRet = -1;expectedModCount = modCount;} catch (IndexOutOfBoundsException ex) {throw new ConcurrentModificationException();}}}

转载于:https://my.oschina.net/antin/blog/704491

ArrayList ListItr相关推荐

  1. think-in-java(17)容器深入研究

    注意: 17章接着 11章继续分析 java容器, think-in-java(11) [17.1]完整的容器分类方法 [容器分类网络解说] 1)接口:虚线框,没有实线入边(没有实体类继承关系,只有接 ...

  2. BUAA_OO_博客作业3——规格

    BUAA_OO_博客作业3--规格 • 梳理JML语言的理论基础.应用工具链情况 JML是java modeling language的缩写,是一种描述性质的语言.有一定的语法规则. 这种语言被用来描 ...

  3. java入门~第十六天 对象数组以及集合和相关数据结构

    1.对象数组 ​ 就是数组中的元素都是一个个的对象,但是并不是指对象本身,而是指的是对象的引用,即指向对象的那个指针,而这个指针是存放在虚拟机内存的栈中. ​ 对象数组的创建需要两个步骤: 1:创建一 ...

  4. ##正则表达式常见类的使用

    ##正则表达式//常见类的使用//集合 ###正则表达式 A: 正则表达式:正确规则的表达式 规则java给我们定的 是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.其实就是一种 ...

  5. OO第三单元总结性博客

    OO第三单元总结性博客 JML理论基础与工具链 JML理论基础 JML是一种将java程序规格化表达的一种语言,其描述的是行为的规格,而非具体的代码实现. 通过对程序开展规格化设计,当然前提是使用JM ...

  6. Java中ArrayList源码分析

    一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保 ...

  7. 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别

    作者 | 沉默王二 来源 | 沉默王二(ID:cmower) ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题.可能大部分小伙伴和我一样,能回答出"Ar ...

  8. 计算机程序的思维逻辑 (38) - 剖析ArrayList

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>(马俊昌著),由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买:京东自营链接 ...

  9. Java容器类研究4:ArrayList

    java.util.ArrayList ArrayList继承自AbstractList,AbstractList为随机访问数据的结构,如数组提供了基本实现,并且提供了Iterator.首先看Abst ...

  10. 集合框架源码分析三(实现类篇ArrayList,LinkedList,HashMap)

    一.ArrayList,可自动扩充容量的动态数组 public class ArrayList<E> extends AbstractList<E> implements Li ...

最新文章

  1. Halcon资料:image,region,xld三者如何转化和保存
  2. 前端学习(1746):前端调试值之时间监听
  3. Java final修饰符的作用,Java中的final修饰符
  4. linux版微信 能发表情包的,仿微信在对话框文字中插入Emoji表情包
  5. 识别图片噪声干扰_射频相位噪声介绍
  6. tomcat异常[0]--java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
  7. 关于echart 图表自适应问题的解决办法
  8. Linux自学之旅-安装篇(一)
  9. 饮食结构思维导图模板
  10. android ndk adk 旧版本下载
  11. 摄影测量前方交会编程实现
  12. Ubuntu18.04双系统卸载
  13. 网页连接正常软件无法连接服务器,网络连接正常网页却无法打开是什么原因 怎么解决方法教程...
  14. 经典网页设计:20佳很酷的个人网站设计案例
  15. 携程网络防火墙自动化运维
  16. 华中科技大学计算机王凯,苗蕾-环境科学与工程学院
  17. 计算机书籍推荐 活着,信息朗读者 |《活着》——19级计算机实验班蔺子健
  18. php 统计汉字,PHP 统计实时统计汉字个数和区别
  19. 期刊投稿状态_SCI期刊投稿各种状态详解
  20. 有利可图的NFT,NA公链(Nirvana Chain)NAC公链怎么面对高额Gas费的?

热门文章

  1. 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
  2. 如何导出微信的小视频
  3. python调用sklearn库BP神经网络基于小样本进行痘痘预测尝试
  4. 高级GIS-1.提取纯净像元
  5. Python3 字符串操作
  6. 模板题——堆排序 哈希表 字符串哈希
  7. ArcGIS 起伏度、坡度、交通便利度数据生成
  8. ActiveX控件属性
  9. ai能不能同时切割多个对象_今天才发现,AI有这9个隐藏技能...
  10. (已拿offer)2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)...