网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  使用iterator节省代码     
  文章作者:未知  文章来源:水木森林  
  查看:103次  录入:管理员--2007-11-17  
 
  当对map 或者collection执行iterate时,通过遍历map或者collection应用程序接口(api)删除一个元素是非法的。如果你试着运行如下的代码:

import java.util.*;
public class testiterator {

static public void main(string[ ] strs) {
hashmap map = new hashmap( );
map.put("one", "1");
map.put("two", "2");
map.put("three", "3");
iterator iterator = map.keyset( ).iterator( );
object obj = iterator.next( );
obj = iterator.next( );
map.remove(obj);
obj = iterator.hasnext( );
}
}
就会抛出如下异常:

exception in thread "main" java.util.concurrentmodificationexception
at java.util.hashmap$hashiterator.next(hashmap.java:736)
at testiterator.main(testiterator.java:14)

remove 方法使iterator无效,并且当在下一次对iteration操作的时候,异常就会抛出。仔细检查iterator的api,以便正确地从iterator中移走当前值。可对前面的例子做如下修改:

map.remove(obj);
把上行换为:

iterator.remove(obj);
任何对map的改变都会使iterator无效,remove 是iterator接口直接支持的唯一的修改方法
 
 
上一篇: 使用hibernate进行对象的关系映射    下一篇: 使用jakarta commons pool处理对象池化
  相关文档
java更新xml的四种常用方法简介 11-16
java高级:编写跨平台java程序注意事项 12-11
toexponential 方法 11-16
使用mmapi播放gif动画 11-17
java3d实现三维显示 系列一 11-17
java新手入门——整理的scjp听课笔记 11-17
通过测试分类实现敏捷构建 11-17
configuringhigh-speeddialup 11-17
java url编程 11-17
浅析java语言中两种异常在使用时的差别 11-16
另类查询 hibernate hql 深度历险 11-17
"2008微软技术创新日" 9月27日登陆北京 09-08
高级:编写多线程java应用程序常见问题 01-03
如何学习hibernate 11-17
java程序员必读:基础篇(7)编程中的一些共同的问题 11-17
关于如何用java动态代理实现aop的技术说明 04-14
基于j2ee的电子商务网站实例 11-17
javaapplet编程之声音和图像的协调 11-17
原创重量级:jboss 4.0.2集群指南(图) 11-17
程序员注意:java开发最容易犯的21种错误 05-22
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息