【发布时间】:2011-07-27 16:01:38
【问题描述】:
为什么当我为 hashtable 和 hashmap 运行等效代码时会得到不同的结果?
Iterator<Integer> it = ht.keySet().iterator();
while(it.hasNext()) {
i = it.next();
System.out.println(i + " : " + ht.get(i));
}
ht 是一个哈希表对象。如果我用 hm 替换,一个 hashmap 对象,它不会打印来自 get() 方法的值,而是打印 null。这是为什么呢?
【问题讨论】:
-
您确定没有忘记在初始化时切换对象吗?具体来说,您将对象放入 ht 中,但尝试从 hm 中检索它们?
-
差异肯定来自其他原因。尝试简单地输出
ht.toString()进行比较。 -
当我运行一个更完整的测试用例时,我没有得到不同的结果。 (好吧,我得到不同的订单)。你会发布你使用的完整代码吗?
-
对不起伙计们,我在某一时刻切换了迭代器的使用,结果很糟糕。已纠正,感谢cmets!
-
@dryHump:你能用你的“解决方案”发布答案吗?
标签: java hashmap hashtable iteration