今天在使用Iterator的时候被一个问题困扰了很久,最后通过一步步的找错终于找出了错误,原因是忽视了一个小问题,现在先来说一下我的操作:
while(it.hasNext()){
Map<String,Object> product=it.next()
;
if(product.containsKey("pid")){
int value=Integer.parseInt(String.valueOf(product.get("pid")));
if(value==pid){
shoppingList.remove(it.next()
);
}
}
}
这是我的代码,相信大家都可以看懂了,但是奇怪的是运行这段代码以后,总是报NoSuchElementException
异常,为什么呢?找了很久都没找出来,最后发现了问题的所在, 看到上面的红色标记没有,这里有两个it.next();我们来看一下这个方法在API中的说明:
next
E next()
Returns the next element in the iteration.
Returns:
the next element in the iteration.
Throws:
NoSuchElementException - iteration has no more elements.
现在应该知道问题的所在了吧,第一个it.next()后再去it.next()就不是原来想要的了,也就是说it.next()后这个it就指向了下一个对象,所以第二个it.next() 应该换成product,对于Iterator处理,建议新建一个变量保存it.next()的值,后面就直接对这个值操作就行了。
<!-- Generated by javadoc (build 1.6.0) on Wed Nov 29 02:21:55 PST 2006 -->
<noscript></noscript>
分享到:
相关推荐
struts2 标签iterator使用我自己试过的
C++使用iterator的例子
struts2中iterator 标签的使用详解
示例iterator使用及技巧,有详细例子!先由基础到应用技巧
webwrok iterator标签status属性使用方法 一看就明白 很清楚
该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法
一个iterator_jsonDemo. 1.通过iterable接口和iterator实现迭代输出。2.通过JSONArray实现输出(自带json相关jar包)。供参考。
java Iterator迭代器的使用 java Iterator迭代器的使用 java Iterator迭代器的使用
Iterator接口在集合中的使用方法!
Boost Iterator_adaptor
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...
webwrok iterator标签status属性使用方法.docwebwrok iterator标签status属性使用方法.docwebwrok iterator标签status属性使用方法.docwebwrok iterator标签status属性使用方法.docwebwrok iterator标签status属性...
图解设计Iterator 源代码
是关于iterator的函数,以及它们的作用!
本资源模拟java ArrayList Iterator的实现方式,其实也是为了介绍一下Iterator的设计模式。
也许你的C++代码已经充斥着vector、string 甚至multimap,也许你正 在为此而自鸣得意,然而,你是否真的了解STL 呢?你知道如何在各种容器类之 间做出正确的选择吗?你知道如何最为有效的从一个vector 中删除特定值...
struts2 中标签的使用 这段时间学习用struts2来开发网站,其中对一些struts2的标签在实际操作上有一些体会。 一.关于iterator迭代集合对象的问题:
使用Iterator的方法
java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf
java中Iterator迭代器讲解,基础数据对象。