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

时间:2015-09-18 06:37:46

标签: java core

我能够将字符串添加到字典中,然后继续循环迭代我将从字典中删除所有值,但是如果我尝试在字典中添加任何键,则它似乎不会添加

这是代码

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”的输出:(

有人可以帮我改进代码吗?

1 个答案:

答案 0 :(得分:1)

您没有致电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