我面临着一个似乎没有直接解决方案的问题。

我在用着 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)?

杰瑞赫

有帮助吗?

解决方案

使用

table.put(key, val);

以添加新的键/值对或覆盖现有的键的值。

从Javadoc中:

  

五世所说(K键,V值):同伙与此映射(可选操作)中的指定键指定的值。如果映射以前包含该键的映射关系,则旧值是由指定的值所替代。 (A地图米据说含有一个密钥k的映射当且仅当m.containsKey(K)将返回true。)

其他提示

如果项存在table.put(key, val)只是简单地覆盖值否则它会创建一个新条目。噗!和你做。 :)

您可以通过使用密钥获得从地图值为table.get(key);这就是它

你只需使用 方法

public Object put(Object key, Object value)

如果该键已存在于 Map 中,则返回之前的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top