淺談java8中map的新辦法--replace。本站提示廣大學習愛好者:(淺談java8中map的新辦法--replace)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談java8中map的新辦法--replace正文
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全體內容了,願望年夜家多多支撐~