hashtable使用时犯得愚蠢错误
2010-05-03 03:33
169 查看
keyword:enumeration,hashtable,总是为true。
今天在做projektkurz习题的时候犯了很愚蠢的错误,而且很难查出来,我想了挺长时间才找到的问题。
在hashtable进行遍历的时候,我用的是key返回enumeration<E>然后再遍历这个enumeration原来的式子是这样的:
这样的式子在运算的时候返回的boolean值总也是true。
当然是true! 每次调用的时候都重新调用了modelData.listCourses(),也就是说重新去拿了那个enumeration返回值,那岂不是都重置了。
所以在使用的时候一定要注意,先单独的把enumeration拿出来,然后再作为条件语句放入循环
正确的:
今天在做projektkurz习题的时候犯了很愚蠢的错误,而且很难查出来,我想了挺长时间才找到的问题。
在hashtable进行遍历的时候,我用的是key返回enumeration<E>然后再遍历这个enumeration原来的式子是这样的:
while(modelData.listCourses().hasMoreElements()){ Course c= modelData.listCourses().nextElement(); ... }
这样的式子在运算的时候返回的boolean值总也是true。
当然是true! 每次调用的时候都重新调用了modelData.listCourses(),也就是说重新去拿了那个enumeration返回值,那岂不是都重置了。
所以在使用的时候一定要注意,先单独的把enumeration拿出来,然后再作为条件语句放入循环
正确的:
Enumeration e2 = ht.keys(); while (e2.hasMoreElements()) { String key = (String) e2.nextElement(); System.out.println(key +"—"+ht.get(key)); }
相关文章推荐
- Hashtable 使用GetEnumerator() 时发生 System.InvalidOperationException类型错误
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- 记使用JSTL时的一次愚蠢错误
- 使用Hashtable维护在线用户时的一个小错误。
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- uclibc下使用libcurl的段错误(缺少hosts文件)
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
- 安装 SQL SERVER 2008 必须使用 "角色管理工具" 错误 的 解决方案
- 在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的解决办法
- Ubuntu 使用terminal安装tensorflow,出现的错误锦集
- IE中自定义标签使用自封闭格式引发错误!
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序
- 使用Update...returning...into为什么会出现ORA-01036,ORA-24369错误 <收藏>
- springboot->使用messagesSourcec处理字段验证抛出错误
- RxJava2与Retrofit使用错误记录
- win7 下使用 daemon "无法添加适配器"错误的解决
- 使用ffmpeg库编译错误undefined reference to `BZ2_bzDecompressInit'
- apache虚拟主机配置错误导致网站不能正常使用session
- 使用Starling 框架时,报错Error: Error #3669: 输入大小错误, 解决方案
- 使用hibernate2的时候出现session中对象重复错误