Java Iterator for 循环 NoSuchElementException 异常
程序员文章站
2022-06-25 12:09:09
...
Java 用iterator实现多重for循环可能会遇到的问题
Effective Java 中已有相应介绍:
原因就在于
for(Iterator<Suit> i = suits.iterator();i.hasNext();){
for(Iterator<Rank> j =ranks.iterator();j.hasNext();){
deck.add(new Card(i.next(),j.next()));
我们原本是打算每个 i 对应 j 个内循环,但实际上却是 在执行每一次内循环时,不仅 j 在遍历下一个 ranks 的元素,i 也在遍历下一个 suits 的元素(i.next()
),因为 j 元素的个数多于 i 的元素个数,所以当遍历完第 i 个内循环时,由于 i+1< j
,内循环继续执行,而 i+1 对应的 suits 已经为空了,所以出现 NoSuchElementException
推荐阅读
-
java基础(18):集合、Iterator迭代器、增强for循环、泛型
-
java:try...catch跳过异常继续处理循环问题
-
java--Iterator迭代问题:集合并发访问异常
-
JAVA Iterator接口与增强for循环的实现
-
Java Iterator for 循环 NoSuchElementException 异常
-
JAVA基础之集合、Iterator迭代器、泛型及增强for循环
-
java基础(18):集合、Iterator迭代器、增强for循环、泛型
-
java--Iterator迭代问题:集合并发访问异常
-
java:try...catch跳过异常继续处理循环问题
-
JAVA基础之集合、Iterator迭代器、泛型及增强for循环