Java map.getOrDefault()方法的用法詳解
Map.getOrDefault(Object key, V defaultValue)方法的作用是:
當(dāng)Map集合中有這個(gè)key時(shí),就使用這個(gè)key值;
如果沒(méi)有就使用默認(rèn)值defaultValue。
代碼示例如下:
HashMap<String, String> map = new HashMap<>(); map.put("name", "cookie"); map.put("age", "18"); map.put("sex", "女"); String name = map.getOrDefault("name", "random"); System.out.println(name);// cookie,map中存在name,獲得name對(duì)應(yīng)的value int score = map.getOrDefault("score", 80); System.out.println(score);// 80,map中不存在score,使用默認(rèn)值80
補(bǔ)充知識(shí):java8中java.util.Map接口新增默認(rèn)方法說(shuō)明
###前言:
1.看了Map接口新增的幾個(gè)默認(rèn)方法,測(cè)試了一下用法。在這里分享一下;
###新增方法:
//若傳入的key對(duì)應(yīng)的value為null或者key不存在Map中,則返回defaultValue 1. default V getOrDefault(Object key, V defaultValue) //遍歷Map集合,方法比較爽,省的自己寫(xiě)迭代器了 2. default void forEach(BiConsumer<? super K, ? super V> action) //全部修改map的value值,修改的值取決于傳入Lambda的返回值 3. default void replaceAll(BiFunction<? super K, ? super V, ? extends V> function) //若key對(duì)應(yīng)的Value為空或者null,則使用value替代 4. default V putIfAbsent(K key, V value) //若傳入的value和map中key對(duì)應(yīng)的value相等,則刪除,返回true,否者,返回false 5. default boolean remove(Object key, Object value) //oldValue和Map中key對(duì)應(yīng)的value相等,或者M(jìn)ap不包含key,則返回false,否則想key,newValue存放進(jìn)Map 6. default boolean replace(K key, V oldValue, V newValue) oldValue和Map中key對(duì)應(yīng)的value相等,或者M(jìn)ap不包含key,則返回false,否則想key,newValue替換進(jìn)Map 7. default V replace(K key, V value) 8. default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) 9. default V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 10. default V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 11. default V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
以上這篇Java map.getOrDefault()方法的用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 模擬數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java 模擬數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02線程池調(diào)用kafka發(fā)送消息產(chǎn)生的內(nèi)存泄漏問(wèn)題排查解決
這篇文章主要為大家介紹了線程池調(diào)用kafka發(fā)送消息產(chǎn)生的內(nèi)存泄漏問(wèn)題排查解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08使用Lombok子類(lèi)繼承父類(lèi),父類(lèi)屬性不生效問(wèn)題及解決
在使用Lombok庫(kù)時(shí),若子類(lèi)繼承父類(lèi),父類(lèi)的屬性可能不會(huì)自動(dòng)生效,為解決此問(wèn)題,可通過(guò)在父類(lèi)上添加@Getter和@Setter注解,或使用@SuperBuilder注解來(lái)確保父類(lèi)屬性在子類(lèi)中有效,同時(shí),需注意確保Lombok版本一致且正確配置了相關(guān)插件2024-10-10JAVA實(shí)現(xiàn)PDF轉(zhuǎn)HTML文檔的示例代碼
本文是基于PDF文檔轉(zhuǎn)PNG圖片,然后進(jìn)行圖片拼接,拼接后的圖片轉(zhuǎn)為base64字符串,然后拼接html文檔寫(xiě)入html文件實(shí)現(xiàn)PDF文檔轉(zhuǎn)HTML文檔,感興趣的可以了解一下2021-05-05idea配置maven環(huán)境時(shí)maven下載速度慢的解決方法
我們?cè)趇dea配置maven環(huán)境的時(shí)候會(huì)發(fā)現(xiàn)maven更新慢的現(xiàn)象,解決辦法就是下載國(guó)內(nèi)的鏡像包,完美解決下載速度慢的問(wèn)題,文中有詳細(xì)的具體操作方法,并通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02SpringBoot 過(guò)濾器與攔截器實(shí)例演示
本文通過(guò)示例代碼給大家講解SpringBoot 過(guò)濾器與攔截器的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-11-11Java function函數(shù)式接口的使用方法與實(shí)例
這篇文章主要介紹了Java function函數(shù)式接口的使用方法與實(shí)例,函數(shù)式接口如一支未完成的詩(shī)篇,用Lambda表達(dá)式作韻腳,將代碼的機(jī)械美感與藝術(shù)的抽象融為一體,悄然重構(gòu)了開(kāi)發(fā)者對(duì)代碼之美的認(rèn)知,需要的朋友可以參考下2025-02-02