Java中的java.util.Dictionary類是一個抽象類,它表示鍵值對的集合,其中鍵是唯一的,用於訪問值。它是 Java 1.2 中引入的 Java 集合框架的一部分,但自 Java 1.2 以來已被 java.util.Map 接口所取代。
Dictionary 類是一個抽象類,不能直接實例化。相反,它提供了訪問存儲在集合中的鍵值對的基本操作,這些操作由其具體子類 java.util.Hashtable 實現。
Dictionary 類定義了以下方法:
- get(Object key):返回與字典中指定鍵關聯的值,如果未找到該鍵則返回 null。
- put(Object key, Object value):將鍵值對插入字典中。如果key已經存在,則對應的值為
- 替換為新值,並返回舊值。如果 key 是新的,則返回 null。
- remove(Object key):從字典中刪除與指定鍵關聯的鍵值對,並返回其值。如果未找到該鍵,則返回 null。
- size():返回字典中存儲的鍵值對的數量。
- isEmpty():如果字典為空,則返回 true,否則返回 false。
elements():返回存儲在字典中的值的枚舉。 - keys():返回存儲在字典中的鍵的枚舉。
這是使用 Dictionary 類的示例:
Java
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Hashtable;
public class DictionaryExample {
public static void main(String[] args)
{
Dictionary<String, Integer> dict= new Hashtable<>();
dict.put("Alice", 25);
dict.put("Bob", 30);
dict.put("Charlie", 35);
System.out.println(dict.get("Bob")); // 30
int oldValue = dict.put("Charlie", 40);
System.out.println(oldValue); // 35
dict.remove("Alice");
System.out.println(dict.size()); // 2
Enumeration<String> k = dict.keys();
while (k.hasMoreElements()) {
String key = k.nextElement();
System.out.println("Key: " + key + ", Value: "
+ dict.get(key));
}
}
}
30 35 2 Key: Bob, Value: 30 Key: Charlie, Value: 40
util.Dictionary 是一個抽象類,表示鍵值關係,其工作方式類似於映射。給定一個鍵,您可以存儲值,並在需要時可以使用其鍵檢索值。因此,它是一個鍵值對的列表。
聲明
public abstract class Dictionary extends Object
構造函數:
Dictionary()唯一的構造函數。
java.util.Dictionary類是Java中提供鍵值數據結構的類,類似於Map接口。它是原始 Java Collections 框架的一部分,在 Java 1.0 中引入。
然而,Dictionary 類已被認為已過時,並且通常不鼓勵使用它。這是因為它是在Collections框架引入之前設計的,沒有實現Map接口,這使得它很難與框架的其他部分結合使用。
一般來說,建議使用 Map 接口或其實現之一(例如HashMap 或 ConcurrentHashMap)而不是 Dictionary 類。
以下是如何使用 Dictionary 類的示例:
Java
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Hashtable;
public class Main {
public static void main(String[] args) {
Dictionary<String, Integer> dictionary = new Hashtable<>();
// Adding elements to the dictionary
dictionary.put("A", 1);
dictionary.put("B", 2);
dictionary.put("C", 3);
// Getting values from the dictionary
int valueA = dictionary.get("A");
System.out.println("Value of A: " + valueA);
// Removing elements from the dictionary
dictionary.remove("B");
// Enumerating the elements of the dictionary
Enumeration<String> keys = dictionary.keys();
while (keys.hasMoreElements()) {
String key = keys.nextElement();
System.out.println("Key: " + key + ", Value: " + dictionary.get(key));
}
}
}
Value of A: 1 Key: A, Value: 1 Key: C, Value: 3
util.Dictionary 類的方法:
1. put(K鍵,V值): java.util.Dictionary.put(K鍵,V值)將鍵值對添加到字典中。
用法:
public abstract V put(K key, V value) Parameters : -> key -> value Return : key-value pair mapped in the dictionary
2.elements(): java.util.Dictionary.elements()返回字典中的值表示。
用法:
public abstract Enumeration elements() Parameters : -------- Return : value enumeration in dictionary
3. get(Object key):java.util.Dictionary.get(Object key) 返回與字典中的參數鍵映射的值。
用法:
public abstract V get(Object key) Parameters : key - key whose mapped value we want Return : value mapped with the argumented key
4.isEmpty():java.util.Dictionary.isEmpty()檢查字典是否為空。
用法:
public abstract boolean isEmpty() Parameters : ------ Return : true, if there is no key-value relation in the dictionary; else false
5. keys():java.util.Dictionary.keys()返回字典中的鍵表示。
用法:
public abstract Enumeration keys() Parameters : -------- Return : key enumeration in dictionary
6. 刪除(對象鍵): java.util.Dictionary.remove(對象鍵)刪除與參數鍵映射的鍵值對。
用法:
public abstract V remove(Object key) Parameters : key : key to be removed Return : value mapped with the key
7. size(): java.util.Dictionary.size() 返回編號。字典中的鍵值對。
用法:
public abstract int size() Parameters : ------- Return : returns the no. of key-value pairs in the Dictionary
Java
// Java Program explaining util.Dictionary class Methods
// put(), elements(), get(), isEmpty(), keys()
// remove(), size()
import java.util.*;
public class New_Class
{
public static void main(String[] args)
{
// Initializing a Dictionary
Dictionary geek = new Hashtable();
// put() method
geek.put("123", "Code");
geek.put("456", "Program");
// elements() method :
for (Enumeration i = geek.elements(); i.hasMoreElements();)
{
System.out.println("Value in Dictionary : " + i.nextElement());
}
// get() method :
System.out.println("\nValue at key = 6 : " + geek.get("6"));
System.out.println("Value at key = 456 : " + geek.get("123"));
// isEmpty() method :
System.out.println("\nThere is no key-value pair : " + geek.isEmpty() + "\n");
// keys() method :
for (Enumeration k = geek.keys(); k.hasMoreElements();)
{
System.out.println("Keys in Dictionary : " + k.nextElement());
}
// remove() method :
System.out.println("\nRemove : " + geek.remove("123"));
System.out.println("Check the value of removed key : " + geek.get("123"));
System.out.println("\nSize of Dictionary : " + geek.size());
}
}
輸出:
Value in Dictionary : Code Value in Dictionary : Program Value at key = 6 : null Value at key = 456 : Code There is no key-value pair : false Keys in Dictionary : 123 Keys in Dictionary : 456 Remove : Code Check the value of removed key : null Size of Dictionary : 1
Dictionary類的優點:
- 遺留支持:Dictionary 類是原始 Java Collections 框架的一部分,並且從一開始就是 Java 的一部分。這意味著,如果您有使用 Dictionary 的舊代碼,您仍然可以在新代碼中使用它。
- 使用簡單:Dictionary 類使用簡單,並提供基本的鍵值數據結構函數,這對於簡單的情況很有用。
Dictionary類的缺點:
- 已過時:Dictionary 類被認為已過時,並且通常不鼓勵使用它。這是因為它是在Collections框架引入之前設計的,沒有實現Map接口,這使得它很難與框架的其他部分結合使用。
- 函數有限:Dictionary 類提供基本的鍵值數據結構函數,但不提供 Map 接口及其實現中可用的全部函數。
- 不類型安全:Dictionary 類使用 Object 類來表示鍵和值,這可能會導致類型不匹配和運行時錯誤。
相關書籍:
- “Java Collections” 作者:莫裏斯·納夫塔林和菲利普·瓦德勒。本書全麵概述了 Java Collections 框架,包括 Dictionary 類。
- David Flanagan 的《Java 簡介》。本書提供了 Java 核心函數(包括 Dictionary 類)的快速參考。
- Maurice Naftalin 和 Philip Wadler 的“Java 泛型和集合”。本書提供了 Java 中泛型和集合的全麵指南,包括 Dictionary 類。
相關用法
- Java Java.util.Dictionary.elements()用法及代碼示例
- Java Java.util.Dictionary.get()用法及代碼示例
- Java Java.util.Dictionary.isEmpty()用法及代碼示例
- Java Java.util.Dictionary.keys()用法及代碼示例
- Java Java.util.Dictionary.put()用法及代碼示例
- Java Java.util.Dictionary.remove()用法及代碼示例
- Java Java.util.Dictionary.size()用法及代碼示例
- Java Java.util.Date.after()用法及代碼示例
- Java Java.util.Date.before()用法及代碼示例
- Java Java.util.Date.clone()用法及代碼示例
- Java Java.util.Date.compareTo()用法及代碼示例
- Java Java.util.Date.equals()用法及代碼示例
- Java Java.util.Date.getTime()用法及代碼示例
- Java Java.util.Date.getHashcode()用法及代碼示例
- Java Java.util.Date.setTime()用法及代碼示例
- Java Java.util.Date.toString()用法及代碼示例
- Java Java.util.ArrayDeque.add()用法及代碼示例
- Java Java.util.ArrayDeque.addFirst()用法及代碼示例
- Java Java.util.ArrayDeque.addLast()用法及代碼示例
- Java Java.util.ArrayDeque.clear()用法及代碼示例
- Java Java.util.ArrayDeque.clone()用法及代碼示例
- Java Java.util.ArrayDeque.descendingIterator()用法及代碼示例
- Java Java.util.ArrayDeque.element()用法及代碼示例
- Java Java.util.ArrayDeque.getFirst()用法及代碼示例
- Java Java.util.ArrayDeque.getLast()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.util.Dictionary Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。