我使用以下代码迭代hashmap-hashmap变量='context'
Iterator iter = context.keySet().iterator();
while(iter.hasNext())
{
String keystring = (String)iter.next();
String varname= keystring.substring(0, keystring.indexOf("~"));
String level= keystring.substring(keystring.indexOf("~")+1);
Integer levelno= Integer.parseInt(level);
if(levelno==curr_level+1)
{
iter.remove();
//we have found a variable of current level... this has to be removed from hashmap...
//context.remove(keystring);
//also the same variable has to be removed from the script engine as well...
scriptEngine.removeVariable(varname);
}
}
以上代码是否正确,尤其是从hashmap中删除数据?因为当我运行程序时,然后在hashmap中的不同(随机)值处生成一条错误消息,指出找不到特定值(在hashmap中)(该代码是独立的并与上面的代码一起使用)。 通过参考上面的代码,我必须记住什么,以避免从hashmap中删除数据时出错?
答案 0 :(得分:1)
是的,这是在不破坏迭代器的情况下删除值的正确方法。
但是,这并不意味着除了已经显示的代码之外,整个应用程序中不会出现逻辑错误。