您的位置:首页 > 其它

hashtable使用时犯得愚蠢错误

2010-05-03 03:33 169 查看
keyword:enumeration,hashtable,总是为true。

今天在做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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐