Java8のMapクラスに追加されたreplaceメソッド

Java8のMapクラスにreplaceというメソッドが追加されました。

このメソッドはネーミング通り値を置き換えてくれますが、いくつか使い方があります。

以下、例です。

import java.util.Map;
import java.util.HashMap;
public class Sample {
  public static void main(String[] args) {
    Map<String,String> map = new HashMap<String,String>();
    map.put("key","value");
    map.replace("key","new");
    System.out.println(map.get("key"));
  }
}

結果は以下のようになります。

new

これはmapにkeyがありますが、存在しない場合にreplaceすると以下のようになります。

import java.util.Map;
import java.util.HashMap;
public class Sample {
  public static void main(String[] args) {
    Map<String,String> map = new HashMap<String,String>();
    map.replace("key","new");
    System.out.println(map.get("key"));
  }
}

結果は以下のようになります。

null

このことからmapにキーがある場合のみ置き換えてくれることがわかります。

replaceの使い方として、もう一つ使い方があります。

キーが存在し、値が一致する場合置き換えることができます。

以下、例です。

import java.util.Map;
import java.util.HashMap;
public class Sample {
  public static void main(String[] args) {
    Map<String,String> map = new HashMap<String,String>();
    map.put("key","value");
    map.replace("key","value","more new");// 値が一致する
    map.replace("key","val","more more new");// 値が一致しない
    System.out.println(map.get("key"));
  }
}

結果は以下のようになります。

more new
スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA