黑马程序员技术交流社区
标题:
一个关于迭代器在迭代过程中增删改的操作问题。
[打印本页]
作者:
csu050416
时间:
2015-5-5 23:39
标题:
一个关于迭代器在迭代过程中增删改的操作问题。
import java.util.*;
class Test
{
public static void main(String[] args)
{
ArrayList a1 = new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");
ListIterator it = a1.listIterator();
while(it.hasNext())
{
Object obj = it.next();
if(obj.equals("java02"))
{
//it.add("java09");
it.set("java11");
it.add("java09");
}
System.out.println(obj);
}
System.out.println(a1);
}
}
上面代运行可以通过。
但是将红色的代码放开,蓝色的注释掉,就会出现运行异常,为什么不能放到前面添加,然后在对其修改?
QQ五笔截图未命名.jpg
(67.29 KB, 下载次数: 31)
下载附件
2015-5-5 23:38 上传
作者:
w401634075
时间:
2015-5-6 00:31
在调用一次next后既没有调用 ListIterator.remove 也没有调用 ListIterator.add 时才可以进行该调用set
作者:
w401634075
时间:
2015-5-6 00:34
其实这个set是一个替代,把这个迭代器里面的元素用指定的元素替代,但是当你第一次调用用的时候,迭代器中没有元素,你却调用set去替代。自然就不行了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2