奇怪的是,我在问哪个是使用Hashtable.keys()或Hashtable.keySet()的更好方法。任何人都足够了。为什么他们给出了两种具有不同返回类型的方法。一个是否有任何性能缺点/好处?
答案 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或其他更高版本的集合。