日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java ifpresent_java映射的merge、compute、computeIfAbsent、computeIfPresent的使用

發布時間:2025/3/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ifpresent_java映射的merge、compute、computeIfAbsent、computeIfPresent的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

merge、compute、computeIfAbsent、computeIfPresent是java8中的語法。

merge:通過構建BiFunction或則是調用java中的一些函數來操作merge參數中的變量。

compute:通過構建BiFunction或則使用lambda表達式來操作參數中的變量,這里無論key是否存在都會執行后面的方法。

computeIfAbsent,computeIfPresent:前一個是當key不存在是則執性后面的方法,后一個是存在時執行后面的方法。

1 packagejihe;2

3 importjava.util.HashMap;4 importjava.util.Map;5 importjava.util.function.BiFunction;6

7 public classMapMain {8 public static voidmain(String[] args) {9 Map myMap = new HashMap<>();10 String keyA = "A";11 String keyB = "B";12 String keyC = "C";13 String keyD = "D";14 String keyE = "E";15 String keyF = "F";16 String keyG = "G";17 String keyH = "H";18 myMap.put(keyA, "str01A");19 myMap.put(keyB, "str01B");20 myMap.put(keyC, "str01C");21

22 System.out.println("myMap initial content:"+myMap);23

24 myMap.merge(keyA, "merge01", String::concat);25 myMap.merge(keyD, "merge01", String::concat);26 System.out.println("Map merge demo content:"+myMap);27

28 BiFunction biFunc = new BiFunction(){29 @Override30 publicString apply(String t, String u) {31 String result =t;32 if (t == null) {33 result =u;34 }35 else{36 result += "," +u;37 }38 returnresult;39 }40 };41

42 myMap.merge(keyA, "BiFuncMerge01", biFunc);43 myMap.merge(keyE, "BiFuncMerge01", biFunc);44 System.out.println("merge"+myMap);45

46 String msg = "msgCompute";47 myMap.compute(keyB, (k, v) -> (v == null) ?msg : v.concat(msg));48 myMap.compute(keyF, (k, v) -> (v == null) ?msg : v.concat(msg));49 System.out.println("compute"+myMap);50

51 myMap.computeIfAbsent(keyC, k ->genValue(k));52 myMap.computeIfAbsent(keyG, k ->genValue(k));53 System.out.println("computeIfAbsent"+myMap);54

55 myMap.computeIfPresent(keyC, biFunc);56 myMap.computeIfPresent(keyH, biFunc);57 System.out.println("computeIfPresent"+myMap);58 }59

60 staticString genValue(String str) {61 System.out.println("===");62 return str + "2";63 }64

65 }

輸出的結果為:

myMap initial content:{A=str01A, B=str01B, C=str01C}

Map merge demo content:{A=str01Amerge01, B=str01B, C=str01C, D=merge01}

merge{A=str01Amerge01,BiFuncMerge01, B=str01B, C=str01C, D=merge01, E=BiFuncMerge01}

compute{A=str01Amerge01,BiFuncMerge01, B=str01BmsgCompute, C=str01C, D=merge01, E=BiFuncMerge01, F=msgCompute}

===

computeIfAbsent{A=str01Amerge01,BiFuncMerge01, B=str01BmsgCompute, C=str01C, D=merge01, E=BiFuncMerge01, F=msgCompute, G=G2}

computeIfPresent{A=str01Amerge01,BiFuncMerge01, B=str01BmsgCompute, C=C,str01C, D=merge01, E=BiFuncMerge01, F=msgCompute, G=G2}

總結

以上是生活随笔為你收集整理的java ifpresent_java映射的merge、compute、computeIfAbsent、computeIfPresent的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。