国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

淺談java8中map的新方法--replace

2019-11-26 13:42:26
字體:
來源:轉載
供稿:網友

Map在Java8中新增了兩個replace的方法

1.replace(k,v)

在指定的鍵已經存在并且有與之相關的映射值時才會將指定的鍵映射到指定的值(新值)

在指定的鍵不存在時,方法會return回來一個null

javadoc的注釋解釋了該默認值方法的實現的等價Java代碼:

if (map.containsKey(key)) {  return map.put(key, value);} else {  return null;}

下面展示的是新方法和JDK8之前的方法比較:

/* * 示范Map.replace(K, V)方法并和JDK8之前的實現方法做對比。JDK8 * 中新增的Map.replace(K, V)方法相比于傳統的實現方法,所用的代碼行數更少 * 并且允許用一個final類型的變量來接收返回值。  */// JDK8之前的實現方式String replacedCapitalCity;if (statesAndCapitals.containsKey("Alaska")) {  replacedCapitalCity = statesAndCapitals.put("Alaska", "Juneau");}// JDK8的實現方式final String replacedJdk8City = statesAndCapitals.replace("Alaska", "Juneau");

2.replace(k,v,v)

第二的新增的Map replace方法在替換現存值方面有更窄的釋義范圍。當那個方法(上一個replace方法)只是涵蓋指定的鍵在映射中有任意一個有效的值的替換處理,而這個“replace”方法接受一個額外的(第三個)參數,只有在指定的鍵和值都匹配的情況下才會替換。

javadoc注釋說明了該默認值方法的實現:

if (map.containsKey(key) && Objects.equals(map.get(key), value)) {  map.put(key, newValue);  return true;} else {  return false;}

下面這段代碼列舉展示的是新實現方法和JDK8之前的實現方法的一個具體比較。

/* * 示范Map.replace(K, V, V)方法并和JDK8之前的實現方法做對比。JDK8 * 中新增的Map.replace(K, V, V)方法相比于傳統的實現方法,所用的代碼行數更少 * 并且允許用一個final類型的變量來接收返回值。  */// JDK8之前的實現方式 boolean replaced = false; if (  statesAndCapitals.containsKey("Nevada")  && Objects.equals(statesAndCapitals.get("Nevada"), "Las Vegas")) {   statesAndCapitals.put("Nevada", "Carson City");   replaced = true; }// JDK8的實現方式final boolean replacedJdk8 = statesAndCapitals.replace("Nevada", "Las Vegas", "Carson City");

以上就是小編為大家帶來的淺談java8中map的新方法--replace全部內容了,希望大家多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凌云县| 舒城县| 横山县| 伊宁县| 西乌珠穆沁旗| 祁连县| 西宁市| 长兴县| 平山县| 正阳县| 平顶山市| 万全县| 香河县| 德安县| 菏泽市| 玉山县| 安达市| 义马市| 观塘区| 得荣县| 屯留县| 新安县| 桓仁| 安丘市| 常宁市| 景宁| 重庆市| 双鸭山市| 竹溪县| 甘孜县| 岑溪市| 六盘水市| 肥乡县| 榕江县| 德安县| 陆良县| 昌都县| 石景山区| 吉木萨尔县| 卢氏县| 万安县|