📜  Java.util.Dictionary类(1)

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

Java.util.Dictionary类

Java.util.Dictionary类是Java提供的一个数据结构类,用于存储键值对。该类是一个抽象类,不能实例化,只能通过其两个子类Hashtable和Properties类实现。

使用方式
创建Dictionary对象
Dictionary<String, String> dict = new Hashtable<>();
添加键值对
dict.put("key1", "value1");
获取键对应的值
String value = dict.get("key1");
移除键值对
dict.remove("key1");
判断是否包含某个键
boolean containsKey = dict.containsKey("key1");
判断是否包含某个值
boolean containsValue = dict.containsValue("value1");
获取字典中的所有键
Enumeration<String> keys = dict.keys();
while (keys.hasMoreElements()) {
    String key = keys.nextElement();
}
获取字典中的所有值
Enumeration<String> values = dict.elements();
while (values.hasMoreElements()) {
    String value = values.nextElement();
}
Hashtable vs Properties

Hashtable和Properties都是Java.util.Dictionary的子类,但它们之间有些许区别。

Hashtable是同步的,而Properties是非同步的。因此,如果需要在多线程环境下使用,应当使用Hashtable。而如果是单线程环境,则可以使用Properties,因为Properties比Hashtable有更好的性能。

同时,Properties类还可以从文件中读取和保存属性。例如:

Properties props = new Properties();
try (InputStream inputStream = new FileInputStream("config.properties")) {
    props.load(inputStream);
    String value = props.getProperty("key");
} catch (IOException e) {
    e.printStackTrace();
}
总结

Java.util.Dictionary类提供了一种键值对存储的方式,Hashtable和Properties类都是Dictionary的子类,可根据实际需求进行选择使用。注意:在多线程的环境下,应使用线程安全的Hashtable。