use*_*988 0 java iterator linked-list
可能重复:
LinkedList迭代器删除
private LinkedList flights;
...
public FlightQueue() {
super();
flights = new LinkedList();
}
...
public void clear(){
ListIterator itr = flights.listIterator();
while(itr.hasNext()){
itr.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
....
Exception in thread "main" java.lang.IllegalStateException
at java.util.LinkedList$ListItr.remove(Unknown Source)
at section1.FlightQueue.clear(FlightQueue.java:44)
at section1.FlightTest001.main(FlightTest001.java:22)
Run Code Online (Sandbox Code Playgroud)
不知道什么是错的,它在第一个itr.remove()显示错误.
来自迭代器API:
IllegalStateException - 如果尚未调用下一个方法,或者在最后一次调用下一个方法后已经调用了remove方法
你必须在调用iterator.remove()之前调用iterator.next().
while(itr.hasNext()){
itr.next(); //This would resolve the exception.
itr.remove();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2050 次 |
| 最近记录: |