【发布时间】:2010-11-06 22:08:16
【问题描述】:
我面临一个似乎没有直接解决方案的问题。
我正在使用java.util.Map,我想更新键值对中的值。
现在,我正在这样做:
private Map<String,int> table = new HashMap<String,int>();
public void update(String key, int val) {
if( !table.containsKey(key) ) return;
Entry<String,int> entry;
for( entry : table.entrySet() ) {
if( entry.getKey().equals(key) ) {
entry.setValue(val);
break;
}
}
}
那么有没有什么方法可以让我获得所需的Entry 对象而不必遍历整个Map?或者有什么方法可以更新条目的值吗? Map 中的一些方法,比如setValue(String key, int val)?
jrh
【问题讨论】:
-
PS:它的 table.entrySet()。我在这里打错了。
-
您可以删除第一个“if”语句。如果密钥不存在,它仍然会导致整个地图迭代。如果您删除它,您仍将遍历整个地图,如果密钥不存在,则不执行任何操作。现在,如果键存在,您遍历映射,发现它存在,然后再次遍历条目。