概述
- 测试代码
@Test
public void test(){
List<Integer> list =new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
Iterator<Integer> iterator = list.iterator();
if (iterator.hasNext()){
Integer next = iterator.next();
iterator.remove();
Iterator<Integer> iterator1 = list.iterator();
iterator1.next();
iterator1.remove();
iterator1.next();
iterator1.remove();
if (iterator.hasNext()){
Integer next1 = iterator.next();
}
}
}
-
结果
**Integer next1 = iterator.next();报错**
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
....
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
- 解释
hasNext():判断当前元素是否存在,并没有指向下一个元素,直到执行next()后hasNext()才去判断是否存在下一个元素。
next():返回当前元素,并指向下一个元素,如果时不存在下一个元素,就会报空指针异常。
最后
以上就是狂野钻石为你收集整理的Iterator的hasNext()条件成立,但next()却为空值的全部内容,希望文章能够帮你解决Iterator的hasNext()条件成立,但next()却为空值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复