質問

私はstraighforward解決策を持っていないように思われる問題に直面しています。

私は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

役に立ちましたか?

解決

使用

table.put(key, val);

新しいキー/値のペアを追加したり、既存のキーの値を上書きします。

のJavadocから:

  

Vプット(Kキー、V値):このマップ(オプション)で指定されたキーに指定された値を関連付け。マップが以前にこのキーのマッピングを保持していた場合、古い値は指定された値に置き換えられます。 (マップMをm.containsKey(k)がtrueを返す場合にのみ鍵kのマッピングを含むと言われている。)

他のヒント

キーが存在する場合は、

table.put(key, val)はちょうどそれが新しいエントリを作成します他の値を上書きします。パッと消えます!あなたが行っています。 :)

あなたはキーを使用してマップから値を取得することができます。

それについてですtable.get(key);です

あなただけの<のhref = "http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html#put(java.lang.Object,%20javaを使用します.lang.Object)」REL = "noreferrer">方法の

public Object put(Object key, Object value)

キーは、以前の値が返され、その後Mapにすでに存在していた場合。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top