gpt4 book ai didi

Java 迭代 : Hashtable vs HashMap

转载 作者:行者123 更新时间:2023-11-30 07:32:04 25 4
gpt4 key购买 nike

当我为哈希表和 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。这是为什么?

最佳答案

虽然在技术上不是您问题的“答案”(由于问题中提供的代码不足,这是不可能的),但我确实有关于代码风格的建议。

这会帮助您避免在代码中发现的错误(根据您后来的评论)。

您提供的代码:

Iterator<Integer> it = ht.keySet().iterator();
while(it.hasNext()) {
i = it.next();
System.out.println(i + " : " + ht.get(i));
}

相当于这个更优雅的foreach遍历 entry set :

for (Map.Entry<Integer, Object> entry : ht.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}

如果可以的话,优先使用这种形式而不是直接使用迭代器。
它更整洁,更少的代码 == 好

关于Java 迭代 : Hashtable vs HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com