您的位置:首页 > 编程语言 > Java开发

使用Iterator引起的java.util.NoSuchElementException异常

2017-03-29 15:08 543 查看
使用Iterator引起的java.util.NoSuchElementException错误

今天在使用Iterator时写了如下代码:
for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
HashMap hmap = new HashMap() ;
hmap.put("file";, iter.next());
hmap.put("state";, (String)map.get(iter.next()));
listItem.add(hmap);
}


 

运行发现报错:java.util.NoSuchElementException 

检查发现是2次使用了Iterator.next() 方法,导致边界溢出 

做如下修改解决 

另要注意:当iterator中的elements个数为偶数是不会报错的 
for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
HashMap hmap = new HashMap() ;
String nextElement = (String)iter.next();
hmap.put("file";, nextElement);
hmap.put("state";, (String)map.get(nextElement));
listItem.add(hmap);
}
使用一次 iterator 的next()方法即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: