hashtable keys()keySet()哪个更好

时间:2012-03-15 14:24:50

标签: hashtable

奇怪的是,我在问哪个是使用Hashtable.keys()或Hashtable.keySet()的更好方法。任何人都足够了。为什么他们给出了两种具有不同返回类型的方法。一个是否有任何性能缺点/好处?

2 个答案:

答案 0 :(得分:0)

keySet就在那里因为

它返回此Hashtable中包含的键的Set视图。 Set由Hashtable支持,因此对Hashtable的更改将反映在Set中,反之亦然。 Set支持元素删除(从Hashtable中删除相应的条目),但不支持元素添加。

键只返回此哈希表中键的枚举,获取枚举后不会反映任何更改。

答案 1 :(得分:0)

除了Rahul提到的功能差异外,Hashtable本身也是早期java版本的旧工件,并且已经改进以实现Map接口。 所以keySet是Map接口所需的后续构造。

此外,如果这是您正在编写的新代码,您应该在http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html上阅读此数据结构的api详细信息,并查看是否应该考虑该指南并使用HashMap或其他更高版本的集合。