删除所有键后无法将键添加到字典
Not able to add key to Dictionary after I remove all keys
我可以将键添加到字典,然后继续迭代循环我正在从字典中删除所有值,但是一旦我尝试在字典中添加任何键,它似乎不会添加
这是代码
public static void main(String[] args) {
Dictionary dict = new Hashtable();
dict.put("1", "Aniruddha");
dict.put("2", "Anir");
dict.put("3", "Anirdha");
dict.put("4", "Anuddha");
for(Enumeration key = dict.keys(); key.hasMoreElements();)
{
dict.remove(key);
}
dict.put("5", "swew");
System.out.println(dict.get("5"));
}
我没有得到键“5”的输出:(
谁能帮我改进代码?
你没有调用 Enumeration#nextElement
,所以你总是卡在 for-loop
的第一个元素之前
相反,您可以使用 while-loop
,例如...
Dictionary<String, String> dict = new Hashtable<>();
dict.put("1", "Aniruddha");
dict.put("2", "Anir");
dict.put("3", "Anirdha");
dict.put("4", "Anuddha");
Enumeration<String> keys = dict.keys();
while (keys.hasMoreElements()) {
String theRealKey = keys.nextElement();
dict.remove(theRealKey);
}
dict.put("5", "swew");
System.out.println(dict.get("5"));
另一方面,除非你通过多线程修改Dictionary
,否则你真的不应该使用HashTable
(或Dictionary
),而是使用Map
和 HashMap
我可以将键添加到字典,然后继续迭代循环我正在从字典中删除所有值,但是一旦我尝试在字典中添加任何键,它似乎不会添加
这是代码
public static void main(String[] args) {
Dictionary dict = new Hashtable();
dict.put("1", "Aniruddha");
dict.put("2", "Anir");
dict.put("3", "Anirdha");
dict.put("4", "Anuddha");
for(Enumeration key = dict.keys(); key.hasMoreElements();)
{
dict.remove(key);
}
dict.put("5", "swew");
System.out.println(dict.get("5"));
}
我没有得到键“5”的输出:(
谁能帮我改进代码?
你没有调用 Enumeration#nextElement
,所以你总是卡在 for-loop
相反,您可以使用 while-loop
,例如...
Dictionary<String, String> dict = new Hashtable<>();
dict.put("1", "Aniruddha");
dict.put("2", "Anir");
dict.put("3", "Anirdha");
dict.put("4", "Anuddha");
Enumeration<String> keys = dict.keys();
while (keys.hasMoreElements()) {
String theRealKey = keys.nextElement();
dict.remove(theRealKey);
}
dict.put("5", "swew");
System.out.println(dict.get("5"));
另一方面,除非你通过多线程修改Dictionary
,否则你真的不应该使用HashTable
(或Dictionary
),而是使用Map
和 HashMap