集合迭代器Iterator与java.util.NoSuchElementException异常

文章目录

  • 前言
  • 叙述
    • 集合迭代器Iterator
        • What
        • Iterator方法
        • 解决方法
  • **小结**

前言

最近在公司做一个图书馆的项目,最近在调一个bug,刚开始调试的时候不认为这是一个bug,因为有时候错误会出现,有时候错误就不会出现,真的是百思不得其解啊,为什么会这样呢,看吧,还是老老实实的看一下代码吧。


叙述

在看代码的时候看到了代码中用到了Iterator,这个Iterator是个什么东西呢,报错是不是因为这个的使用呢?好吧,问一下度娘。

集合迭代器Iterator

What

在Java中,有很多的数据容器,对于这些的操作有很多的共性。Java采用了迭代器来为各种容器提供了公共的操作接口。这样使得对容器的遍历操作与其具体的底层实现相隔离,达到解耦的效果。

Iterator方法

集合迭代器Iterator与java.util.NoSuchElementException异常_第1张图片

解决方法

在调试bug的过程中,发现在使用Iterator的时候两次调用next()方法有时会报该异常。通过观察数据,发现当集合元素为偶数个时,.next()方法为偶数个时不会报异常,但会跳跃式读取元素。当集合元素为奇数个时,next()方法为偶数个时会报该异常。
总结:Iterator中.next()方法只能调用一次,每一次使用都会指向下一个元素,当下一个元素不存在是(边界溢出)即报该错误。


小结

调Bug的过程还是很有乐趣的,很好玩。
感谢您的阅读~~

你可能感兴趣的:(集合迭代器Iterator与java.util.NoSuchElementException异常)