我创建了一个DictionaryTest类,将元素及其对应的键添加到字典中,并显示字典的所有元素和键。这是我的代码:
import java.util.Dictionary;
import java.util.Enumeration;
public class DictonaryTest
{
public static void main(String[] args)
{
Dictionary d;
d.put(new Integer(1),new Integer(100));
d.put(new Integer(2),new Integer(200));
d.put(new Integer(3),new Integer(300));
d.put(new Integer(4),new Integer(400));
d.put(new Integer(5),new Integer(500));
System.out.println("Size of dictionary : " + d.size());
Enumeration ekey = d.keys();
Enumeration eelement = d.elements();
System.out.println("Keys in the Dictionary...");
while(ekey.hasMoreElements()){
System.out.println(ekey.nextElement() + "\t");
}
System.out.println("Elements in the Dictionary...");
while(eelement.hasMoreElements()){
System.out.println(eelement.nextElement() + "\t");
}
}
}
但是这里会显示编译错误,这样: 局部变量d可能尚未初始化。 什么对象引用初始化为Dictionary Class类型引用变量?
答案 0 :(得分:1)
您必须编写一个扩展词典的类或使用
Dictionary<Integer,Integer> d = new HashTable<Integer,Integer>();
但是因为它已经过时了:为什么不使用Map&lt;&gt;?
Map<Integer,Integer> d = new HashMap<>();
Set<Integer> keys = d.keySet();
Collection<Integer> values = d.values();
您可以像对应词典一样轻松地处理这些内容。
答案 1 :(得分:0)
在Java中,与C ++不同,声明变量不会初始化它。你必须手动完成。
Dictionary d = new Dictionary();
编辑: Dictionary
是一个抽象类,因此您应该使用它的实现。实际上,现在是obsolete;你应该使用Map
代替。以同样的方式工作。
Map d = new HashMap();
你还应该使用可能的泛型:
Map<Integer,Integer> d = new Map<Integer,Integer>();
如果您使用Map
,则还必须更改其他代码。
Iterator ikey = d.keySet().iterator();
Iterator ielement = d.values().iterator();
System.out.println("Keys in the Dictionary...");
while(ikey.hasNext()){
System.out.println(ikey.next() + "\t");
}
System.out.println("Elements in the Dictionary...");
while(ielement.hasNext()){
System.out.println(ielement.next() + "\t");
}
答案 2 :(得分:0)
以下内容适用(请参阅// <--
行以更改原始代码
import java.util.Dictionary;
import java.util.Hashtable; // <-- Needed for Hashtable
import java.util.Enumeration;
public class DictonaryTest
{
public static void main(String[] args)
{
Dictionary d = new Hashtable(); // <-- Initialise d with a Hashtable
d.put(new Integer(1),new Integer(100));
d.put(new Integer(2),new Integer(200));
d.put(new Integer(3),new Integer(300));
d.put(new Integer(4),new Integer(400));
d.put(new Integer(5),new Integer(500));
System.out.println("Size of dictionary : " + d.size());
Enumeration ekey = d.keys();
Enumeration eelement = d.elements();
System.out.println("Keys in the Dictionary...");
while(ekey.hasMoreElements()){
System.out.println(ekey.nextElement() + "\t");
}
System.out.println("Elements in the Dictionary...");
while(eelement.hasMoreElements()){
System.out.println(eelement.nextElement() + "\t");
}
}
}