📜  Java Hashtable类(1)

📅  最后修改于: 2023-12-03 14:42:14.421000             🧑  作者: Mango

Java Hashtable类

Java Hashtable类实现了一个哈希表,它将键映射到相应的值。任何非空(non-null)对象都可以作为键或值。Hashtable是同步的,这意味着在多线程环境中可以安全地使用。

使用Hashtable类

要使用Hashtable类,需要在代码中导入java.util包。

import java.util.Hashtable;

Hashtable的构造函数有多个重载版本,其中包括无参构造函数、使用初始容量和负载因子的构造函数,以及从另一个Map对象创建Hashtable的构造函数。

以下是使用无参构造函数创建Hashtable的示例代码:

Hashtable<String, Integer> myHashtable = new Hashtable<>();

其中,<String, Integer>表示Hashtable中键的类型为String,值的类型为Integer。

要将键和值添加到Hashtable中,可以使用put()方法:

myHashtable.put("Bob", 25);
myHashtable.put("Alice", 30);
myHashtable.put("Charlie", 35);

可以使用get()方法来根据键获取值:

System.out.println(myHashtable.get("Alice")); // 输出30

可以使用containsKey()方法来检查Hashtable中是否包含指定的键:

if (myHashtable.containsKey("Bob")) {
    System.out.println("Bob的年龄为:" + myHashtable.get("Bob"));
}

可以使用keySet()方法获取Hashtable中所有键的集合:

Set<String> keys = myHashtable.keySet();
for (String key : keys) {
    System.out.println(key + "的年龄为:" + myHashtable.get(key));
}
注意事项
  • Hashtable的键和值都不能为null。
  • Hashtable是同步的,虽然它可以在多线程环境中使用,但在效率方面可能不如非同步的HashMap。如果不需要在多线程环境中使用,可以考虑使用HashMap。
  • Hashtable不保证元素的顺序。
总结

Hashtable是Java中用于实现哈希表的类,它可以将键映射到相应的值,并且是同步的。虽然Hashtable可以在多线程环境中使用,但如果没有多线程环境的需求,就应该使用HashMap。