您的位置:首页 > 其它

iterator的romove方法的注意事项

2016-05-15 10:20 357 查看
package cn.lonecloud.Iterator;

import java.util.ArrayList;
import java.util.Iterator;

public class myIterator {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
/**
* Exception in thread "main" java.lang.IllegalStateException
at java.util.ArrayList$Itr.remove(ArrayList.java:864)
at cn.lonecloud.Iterator.myIterator.main(myIterator.java:17)
*/
Iterator<Integer> iterator=list.iterator();
while (iterator.hasNext()) {
Integer integer = (Integer) iterator.next();
System.out.println(integer);
iterator.remove();
iterator.remove();//这里会出现错误由于next和remove方法的调用是具有相互依赖性的;
//如果没有调用next将是不合法的,会导致IllegalStateException异常

}
}
}


  在iterator 中他的remove的元素是他在next中最后一个next的元素!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: