删除所有键后无法将键添加到字典

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),而是使用MapHashMap