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

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

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

第一引数で指定したキーが存在する場合、加工することができるメソッドです。以下例では、戻り値はString型です。

以下、例です。

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","value");
    map.put("key2","value");
    String str = map.compute("key1",(k,v) -> k + ":" + v);
    System.out.println(str);
  }
}

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

key1:value

第二引数にnull

第一引数で指定したキーが存在する場合、第二引数のremappingFunctionの戻り値にnullを指定すると要素が削除されます。

Map<Integer,String> map = new HashMap<>();
map.put(1,"test");
System.out.println(map.size()); // 1
var ret = map.compute(1, (k,v)-> null);
System.out.println(ret); // null
System.out.println(map.size()); // 0

コメント

  1. detteiu より:

    戻り値はString型とは限りませんね。

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