我面临一个似乎没有直接解决方案的问题。
我正在使用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
答案 0 :(得分:148)
使用
table.put(key, val);
添加新的键/值对或覆盖现有键的值。
来自Javadocs:
V put(K键,V值):将指定值与此映射中的指定键相关联(可选操作)。如果映射先前包含键的映射,则旧值将替换为指定的值。 (当且仅当m.containsKey(k)返回true时,地图m才包含密钥k的映射。)
答案 1 :(得分:11)
如果密钥存在,table.put(key, val)
将覆盖该值,否则它将创建一个新条目。噗!你完成了:)
您可以使用键table.get(key);
来获取地图中的值。这就是它
答案 2 :(得分:5)