在删除功能中,如何比较hashTable中的值和你输入的值,我的代码卡在那里:
//delete router
public void delRouter(String routerNum){
Iterator it = ht.keySet().iterator();
while (it.hasNext()){
String key = it.next().toString();
//take Router object out
Router router = (Router)ht.get(key);
if(router.getRouterNum().equals(routerNum)){
// delete object
ht.remove(routerNum);
}
}
}
我认为问题是ht.remove();请帮帮忙。谢谢你们!
答案 0 :(得分:0)
答案 1 :(得分:0)
您使用ht.remove(routerNum);
从地图中删除路由器的事实表明您使用路由器的数字作为地图的键。在这种情况下,根本不需要迭代地图中的所有键!只需致电ht.remove(routerNum);
即可:
public void delRouter(String routerNum){
ht.remove(routerNum);
}
或者,如果您希望/必须检查地图中的路由器是否确实具有该号码,请执行以下操作:
public void delRouter(String routerNum){
Router router = (Router) ht.get(key);
if (router.getRouterNum().equals(routerNum)){
ht.remove(routerNum);
}
}