質問
私は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にすでに存在していた場合。