java中列表迭代器在最后一次调用 next 后调用了 remove 什么意思
看API文档,ListIterator接口中的remove方法里有这么一句话IllegalStateException-既没有调用next也没有调用previous,或者...
看API文档,ListIterator接口中的remove方法里有这么一句话
IllegalStateException
- 既没有调用 next 也没有调用 previous,或者在最后一次调用 next 或
previous 后调用了 remove 或 add。
我想知道这个最后一次调用next后调用remove是什么情况?
我自己测试的小程序如下:
ArrayList al2 = new ArrayList();
al2.add("123");
al2.add("13");
al2.add("23");
al2.add("1234");
ListIterator it = al2.listIterator();
System.out.println(al2);
while(it.hasNext()){
System.out.println("下一个元素的索引是:"+it.nextIndex());
Object obj = it.next();
System.out.println(obj);
}
it.remove();
System.out.println(al2);
然后发现没报异常啊,而且把最后一个元素移除了。。。
哦。。看明白了- - 展开
IllegalStateException
- 既没有调用 next 也没有调用 previous,或者在最后一次调用 next 或
previous 后调用了 remove 或 add。
我想知道这个最后一次调用next后调用remove是什么情况?
我自己测试的小程序如下:
ArrayList al2 = new ArrayList();
al2.add("123");
al2.add("13");
al2.add("23");
al2.add("1234");
ListIterator it = al2.listIterator();
System.out.println(al2);
while(it.hasNext()){
System.out.println("下一个元素的索引是:"+it.nextIndex());
Object obj = it.next();
System.out.println(obj);
}
it.remove();
System.out.println(al2);
然后发现没报异常啊,而且把最后一个元素移除了。。。
哦。。看明白了- - 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询