我们先来看一段代码
通过运行代码,我们便能发现一个问题,程序报错了
看到这里我们明白了是String value = iterator.next().getValue();这一行报错了,报了NoSuchElementException错误,乍一看我们发现对于iterator进行迭代的时候,两种方式都是可以的,但是究其Iterator的原理我们才能发现,我们在一遍迭代的时候,却进行了两次的next()取值,所以最终造成了NoSuchElementException这个访问越界异常。
总结:我们在Java中使用Iterator的时候一定要注意一次遍历,一次取值,hasNext()只能对应一次next(),不能一次遍历,多次取值,最终结果就是会造成访问越界异常等问题。