欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年10月14日 21:20:15   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談java8中map的新方法--replace。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

1.replace(k,v)

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

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

javadoc的注釋解釋了該默認(rèn)值方法的實(shí)現(xiàn)的等價Java代碼:

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

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

/*
 * 示范Map.replace(K, V)方法并和JDK8之前的實(shí)現(xiàn)方法做對比。JDK8
 * 中新增的Map.replace(K, V)方法相比于傳統(tǒng)的實(shí)現(xiàn)方法,所用的代碼行數(shù)更少
 * 并且允許用一個final類型的變量來接收返回值。 
 */

// JDK8之前的實(shí)現(xiàn)方式
String replacedCapitalCity;
if (statesAndCapitals.containsKey("Alaska")) {
  replacedCapitalCity = statesAndCapitals.put("Alaska", "Juneau");
}

// JDK8的實(shí)現(xiàn)方式
final String replacedJdk8City = statesAndCapitals.replace("Alaska", "Juneau");

2.replace(k,v,v)

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

javadoc注釋說明了該默認(rèn)值方法的實(shí)現(xiàn):

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

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

/*
 * 示范Map.replace(K, V, V)方法并和JDK8之前的實(shí)現(xiàn)方法做對比。JDK8
 * 中新增的Map.replace(K, V, V)方法相比于傳統(tǒng)的實(shí)現(xiàn)方法,所用的代碼行數(shù)更少
 * 并且允許用一個final類型的變量來接收返回值。 
 */

// JDK8之前的實(shí)現(xiàn)方式
 boolean replaced = false;
 if (  statesAndCapitals.containsKey("Nevada")
  && Objects.equals(statesAndCapitals.get("Nevada"), "Las Vegas")) {
   statesAndCapitals.put("Nevada", "Carson City");
   replaced = true;
 }

// JDK8的實(shí)現(xiàn)方式
final boolean replacedJdk8 = statesAndCapitals.replace("Nevada", "Las Vegas", "Carson City");

以上就是小編為大家?guī)淼臏\談java8中map的新方法--replace全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

最新評論