根据Java API
-
IllegalStateException - 如果在最后一次调用 next 或 previous 之后既没有调用 next 也没有调用 previous,或者 remove 或 add 没有被调用
remove()
- 从列表中删除由 next() 或 previous() 返回的最后一个元素(可选操作)。每次调用下一个或上一个时,此调用只能进行一次。只有在最后一次调用 next 或 previous 之后没有调用 add(E) 时,才能执行此操作。
因为每次我们一起调用时add
,remove
它都应该删除最后一个添加的元素,add
原因是这个原因IllegalStateException
例如在我的代码中-
next()
之前每次打电话remove()
- 也
remove()
不会被调用两次而不调用next()
那么为什么有java.lang.IllegalStateException
关于召唤add
和remove
在一起。
我的Java代码是-
ListIterator<String> listIterator=list.listIterator();
while(listIterator.hasNext()){
System.out.println(listIterator.next());
listIterator.add("Intel");
listIterator.remove();
//listIterator.remove();
}
在调用next()
迭代器之后是在下一个元素。
当我们通过add()
迭代器添加元素时,在添加的最后一个元素处向前移动
那为什么要java.lang.IllegalStateException
打电话remove()