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

使用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()方法即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值