package com.jd.stock.common.domain;
import java.util.HashMap;
import java.util.Map;
public class MapTestInJava8 {
public static Map<String, String> map = new HashMap<>();
static {
map.put("a", "A");
map.put("b", "B");
map.put("c", "C");
}
public static void main(String[] args) {
compute();
}
/**
* 使用lambda表達式的計算結果賦值到給定的key上
* (k,v)-{} k爲compute方法的第一個參數值,即給定的Key。v爲給定key在原Map中的舊值。
* compute方法返回值爲lambda表達式計算出的新值
*/
public static void compute(){
String result = map.compute("A", (k, v) -> {
System.out.println(k); // A
System.out.println(v); // null
return "aa";
});
System.out.println(result); // aa
String result1 = map.compute("a", (k, v) -> {
System.out.println(k); // a
System.out.println(v); // A
return "bb";
});
System.out.println(result1); // bb
System.out.println(map); // {A=aa, a=bb, b=B, c=C}
}
}