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

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント
戻り値はString型とは限りませんね。
ご指摘ありがとうございます!^^;
「ここでは」と追記しました☆