gpt4 book ai didi

java - Java Hashtable 中的 Set keys() 和 Set keyset() 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 16:56:28 25 4
gpt4 key购买 nike

我正在这个网站上学习Collection Framework:http://way2java.com/collections/hashtable-about/ 。在阅读了 Hashtable 的所有方法之后,我看到了两种访问表键的方法:

  1. Set keys():返回包含所有键的Set对象

  2. Set keySet():返回一个包含Hashtable所有键的Set对象。一个相似之处是 HashtableSet 不允许重复。在 Set 中添加和删除元素也反射(reflect)在 Hashtable

它们都返回一个Set对象。我看不出他们之间有什么不同。谁能告诉我这个吗?

最佳答案

keys() 不返回 Set ,它返回 Enumeration<K> .

Hashtable是一个非常遗留的类,不再推荐使用。它被替换为 HashMap ,或ConcurrentHashMap 。它在 JCF 出现之前就已存在,因此一开始获取 key 的标准方法是通过 Enumeration - 用于移动对象集合的原始 Java 接口(interface)。

然后是 Java 1.2,以及 JCFHashtable已 retrofit 为 Map keySet() 的接口(interface)返回 Set 的方法(也随 JCF 一起引入)。 keys出于遗留兼容性原因保留了方法。 Set从新方法返回实现了两件事:

  1. 传达意图 - 它强化了这样一个事实: Hashtable 的按键是一个数学集合
  2. 实现Iterable<T> ,它取代 Enumerable<T>

来自 Hashtable 文档:

As of the Java 2 platform v1.2, this class was retrofitted to implement the Map interface, making it a member of the Java Collections Framework. Unlike the new collection implementations, Hashtable is synchronized. If a thread-safe implementation is not needed, it is recommended to use HashMap in place of Hashtable. If a thread-safe highly-concurrent implementation is desired, then it is recommended to use ConcurrentHashMap in place of Hashtable.

关于java - Java Hashtable 中的 Set keys() 和 Set keyset() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177557/

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