ArrayList ListItr
为什么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相关推荐
- think-in-java(17)容器深入研究
注意: 17章接着 11章继续分析 java容器, think-in-java(11) [17.1]完整的容器分类方法 [容器分类网络解说] 1)接口:虚线框,没有实线入边(没有实体类继承关系,只有接 ...
- BUAA_OO_博客作业3——规格
BUAA_OO_博客作业3--规格 • 梳理JML语言的理论基础.应用工具链情况 JML是java modeling language的缩写,是一种描述性质的语言.有一定的语法规则. 这种语言被用来描 ...
- java入门~第十六天 对象数组以及集合和相关数据结构
1.对象数组 就是数组中的元素都是一个个的对象,但是并不是指对象本身,而是指的是对象的引用,即指向对象的那个指针,而这个指针是存放在虚拟机内存的栈中. 对象数组的创建需要两个步骤: 1:创建一 ...
- ##正则表达式常见类的使用
##正则表达式//常见类的使用//集合 ###正则表达式 A: 正则表达式:正确规则的表达式 规则java给我们定的 是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.其实就是一种 ...
- OO第三单元总结性博客
OO第三单元总结性博客 JML理论基础与工具链 JML理论基础 JML是一种将java程序规格化表达的一种语言,其描述的是行为的规格,而非具体的代码实现. 通过对程序开展规格化设计,当然前提是使用JM ...
- Java中ArrayList源码分析
一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保 ...
- 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别
作者 | 沉默王二 来源 | 沉默王二(ID:cmower) ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题.可能大部分小伙伴和我一样,能回答出"Ar ...
- 计算机程序的思维逻辑 (38) - 剖析ArrayList
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>(马俊昌著),由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买:京东自营链接 ...
- Java容器类研究4:ArrayList
java.util.ArrayList ArrayList继承自AbstractList,AbstractList为随机访问数据的结构,如数组提供了基本实现,并且提供了Iterator.首先看Abst ...
- 集合框架源码分析三(实现类篇ArrayList,LinkedList,HashMap)
一.ArrayList,可自动扩充容量的动态数组 public class ArrayList<E> extends AbstractList<E> implements Li ...
最新文章
- Halcon资料:image,region,xld三者如何转化和保存
- 前端学习(1746):前端调试值之时间监听
- Java final修饰符的作用,Java中的final修饰符
- linux版微信 能发表情包的,仿微信在对话框文字中插入Emoji表情包
- 识别图片噪声干扰_射频相位噪声介绍
- tomcat异常[0]--java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
- 关于echart 图表自适应问题的解决办法
- Linux自学之旅-安装篇(一)
- 饮食结构思维导图模板
- android ndk adk 旧版本下载
- 摄影测量前方交会编程实现
- Ubuntu18.04双系统卸载
- 网页连接正常软件无法连接服务器,网络连接正常网页却无法打开是什么原因 怎么解决方法教程...
- 经典网页设计:20佳很酷的个人网站设计案例
- 携程网络防火墙自动化运维
- 华中科技大学计算机王凯,苗蕾-环境科学与工程学院
- 计算机书籍推荐 活着,信息朗读者 |《活着》——19级计算机实验班蔺子健
- php 统计汉字,PHP 统计实时统计汉字个数和区别
- 期刊投稿状态_SCI期刊投稿各种状态详解
- 有利可图的NFT,NA公链(Nirvana Chain)NAC公链怎么面对高额Gas费的?
热门文章
- 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
- 如何导出微信的小视频
- python调用sklearn库BP神经网络基于小样本进行痘痘预测尝试
- 高级GIS-1.提取纯净像元
- Python3 字符串操作
- 模板题——堆排序 哈希表 字符串哈希
- ArcGIS 起伏度、坡度、交通便利度数据生成
- ActiveX控件属性
- ai能不能同时切割多个对象_今天才发现,AI有这9个隐藏技能...
- (已拿offer)2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)...