getOrDefault,putIfAbsent,replace--JDK1.8HashMap新特性

xiaoxiao2021-02-28  66

import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map statesAndCapitals = new HashMap<>(); statesAndCapitals.put("Alaska", "Anchorage"); statesAndCapitals.put("California", "Sacramento"); statesAndCapitals.put("Colorado", "Denver"); statesAndCapitals.put("Florida", "Tallahassee"); statesAndCapitals.put("Nevada", "Las Vegas"); statesAndCapitals.put("New Mexico", "Sante Fe"); statesAndCapitals.put("Utah", "Salt Lake City"); statesAndCapitals.put("Wyoming", "Cheyenne"); statesAndCapitals.put("New York", "New York City"); // default V getOrDefault(Object key, V defaultValue) { //如果存在key,则输出value;反之输出defaultValue String capitalWisconsin = (String)statesAndCapitals.getOrDefault("Wisconsin", "Unknown"); System.out.println(capitalWisconsin); //如果之前key不存在,插入新的键值对,返回旧值(此时为null); //如果之前的key存在,不插入新的键值对,返回旧值(此时可能为null) String capitalNewYork = (String)statesAndCapitals.putIfAbsent("New York", "Albany"); System.out.println(capitalNewYork); //只有在提供的键和值都匹配的时候才会删除该map项,删除成功时返回true,反之返回false boolean removedJdk8 = statesAndCapitals.remove("California", "Sacramento"); System.out.println(removedJdk8); //只有在指定的键匹配的情况下才会替换。 //如果之前key存在的话,替换为新的value,返回旧的value; //如果之前key不存在的话,不替换,返回null String replacedJdk8City = (String) statesAndCapitals.replace("Alaska2", "Juneau"); System.out.println(replacedJdk8City); //只有在指定的键和值都匹配的情况下才会替换,返回true;反之返回false boolean replacedJdk8 = statesAndCapitals.replace("Nevada", "Las Vegas", "Carson City"); System.out.println(replacedJdk8); }//main } default boolean replace(K key, V oldValue, V newValue) { Object curValue = get(key); if (!Objects.equals(curValue, oldValue) || (curValue == null && !containsKey(key))) { return false; } put(key, newValue); return true; }参考:http://www.importnew.com/11365.html

转载请注明原文地址: https://www.6miu.com/read-46378.html

最新回复(0)