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

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

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

replaceAllは全ての要素の値を一気に置き換えます。

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("key1","value1");
    map.put("key2","value2");
    map.put("key3","value3");
    map.replaceAll((k,v) -> "test");
    map.entrySet().stream().forEach(System.out::println);
  }
}

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

key1=test
key2=test
key3=test

以下のように関数オブジェクトを指定することも可能です。関数内で条件指定して置換することができます。

import java.util.Map;
import java.util.HashMap;
public class Sample4 {
  public static void main(String[] args) {
    Map<String,String> map = new HashMap<String,String>();
    map.put("key1","value1");
    map.put("key2","value2");
    map.put("key3","value3");
    map.replaceAll((k,v) ->
      {
        if (k.equals("key2")) {
          return "test1";
        }
        return "test2";
      });
    map.entrySet().stream().forEach(System.out::println);
  }
}

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

key1=test2
key2=test1
key3=test2

コメント

タイトルとURLをコピーしました