(Java)利用ListIterator(iterator 重复器/迭代器的子接口) 操作ArrayList
2015-09-29 21:28
330 查看
add()方法是在下一个将要取得的元素之前插入新的元素。因此如果在下一个将要取得的元素的序号为0,则在序号0的元素前插入新的元素。
测试:
见第1.行,在序号为0的元素前添加一个元素。
见第2.行:这次是在序号为1的元素前添加一个元素,说明ListIterator是自动向前遍历的。
注意!! 此时的index实际上是0,因为新元素是在序号为1的元素前添加的。
根据加以上两个测试结果,看出nextIndex取的是下个index(序号),next取的是下个index(序号)中的元素。
十万个Attention!!先看看JAVA API对ListIterator的说明:
需要注意的是nextIndex只是返回一个index,并没有修改其他的东西。而next取下一个index的元素不单单是取里面的元素,而且其游标(java没有指针,但这里的概念类似于指针)也会移动。在JAVA中有许多这样的情况发生。
打个比方,假如当前遍历的是序号为0的元素。当使用nextIndex()函数时,会返回1,执行完nextIndex()后当前遍历的元素序号还是0,并不是1。
而如果使用next()来替代nextIndex()时,会返回序号为1的元素,而且此时游标会标记为序号1(相当于有一个指针从指向序号0变为指向序号1),即当前遍历的元素序号已经不是0,而是变成了1。
测试:
见第1.行,在序号为0的元素前添加一个元素。
见第2.行:这次是在序号为1的元素前添加一个元素,说明ListIterator是自动向前遍历的。
注意!! 此时的index实际上是0,因为新元素是在序号为1的元素前添加的。
根据加以上两个测试结果,看出nextIndex取的是下个index(序号),next取的是下个index(序号)中的元素。
十万个Attention!!先看看JAVA API对ListIterator的说明:
需要注意的是nextIndex只是返回一个index,并没有修改其他的东西。而next取下一个index的元素不单单是取里面的元素,而且其游标(java没有指针,但这里的概念类似于指针)也会移动。在JAVA中有许多这样的情况发生。
打个比方,假如当前遍历的是序号为0的元素。当使用nextIndex()函数时,会返回1,执行完nextIndex()后当前遍历的元素序号还是0,并不是1。
而如果使用next()来替代nextIndex()时,会返回序号为1的元素,而且此时游标会标记为序号1(相当于有一个指针从指向序号0变为指向序号1),即当前遍历的元素序号已经不是0,而是变成了1。
相关文章推荐
- mac环境下Rwordseg和rJava的安装
- java垃圾回收
- 很好用的Eclipse反编译插件
- JavaWeb之JDBC(数据库连接)
- java篇 【1】java程序的运行机制和java虚拟机 java开发环境构建
- java篇 【0】概述
- Java中的运算符
- JAXB 实现JavaBean与xml互转(二)-封装
- Java中子类继承父类方法应该注意的问题
- 转换jdk安装路径中有空格的情况
- java学习笔记之构造方法私有化与单例模式初讲
- 网页去重思路浅析(一)
- 【Java基础】基础概念
- 使用 native2ascii.exe 将java utf-8编码批量转换为 ANSI.
- test8.17
- Ubuntu14.04配置jdk环境
- java String 和 int 相互转换
- Struts中对通配符的配置说明
- Java里的堆(heap)栈(stack)和方法区(method)(精华帖,多读读)
- (转)Java里的堆(heap)栈(stack)和方法区(method)(精华帖,多读读)