Java Map.getOrDefault方法詳解
Java——Map.getOrDefault方法詳解
Map.getOrDefault(Object key, V defaultValue)是Java中Map接口的一個(gè)方法,用于獲取指定鍵對(duì)應(yīng)的值,如果鍵不存在,則返回一個(gè)默認(rèn)值。
該方法的簽名如下:
V getOrDefault(Object key, V defaultValue)
其中,key表示要查找的鍵,defaultValue表示如果鍵不存在時(shí)返回的默認(rèn)值,V表示Map中存儲(chǔ)的值的類型。
使用getOrDefault方法,我們可以避免在獲取Map中的值時(shí)出現(xiàn)NullPointerException異常。這是因?yàn)楫?dāng)Map中不存在指定的鍵時(shí),get方法返回null,而如果我們直接使用get方法獲取值并嘗試對(duì)其進(jìn)行操作,就會(huì)拋出NullPointerException異常。而使用getOrDefault方法,即使鍵不存在,也會(huì)返回一個(gè)默認(rèn)值,從而避免了這種異常的發(fā)生。
示例代碼:
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
int valueA = map.getOrDefault("a", 0); // 1
int valueC = map.getOrDefault("c", 0); // 0在上述示例中,我們首先創(chuàng)建了一個(gè)HashMap對(duì)象,并向其中添加了兩個(gè)鍵值對(duì)。然后,使用getOrDefault方法,分別獲取了鍵"a"和鍵"c"對(duì)應(yīng)的值,由于鍵"a"存在,因此返回其對(duì)應(yīng)的值1;而鍵"c"不存在,因此返回默認(rèn)值0。
需要注意的是,如果我們?cè)O(shè)置的默認(rèn)值不是Map中存儲(chǔ)的值的類型,則會(huì)拋ClassCastException異常。
因此,在實(shí)際使用時(shí),建議將默認(rèn)值設(shè)置為與Map中存儲(chǔ)的值類型相同的值。
補(bǔ)充:
Java中map.getOrDefault()方法的使用
Map.getOrDefault(Object key, V defaultValue)方法的作用是:
當(dāng)Map集合中有這個(gè)key時(shí),就使用這個(gè)key值;
如果沒有就使用默認(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到此這篇關(guān)于Java Map.getOrDefault方法詳解的文章就介紹到這了,更多相關(guān)Java Map.getOrDefault方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 使用 WebServiceTemplate 調(diào)用&nbs
文章介紹了使用Spring WebServiceTemplate調(diào)用WebService的方法,包括添加依賴、配置WebServiceTemplate、編寫調(diào)用工具類、注意事項(xiàng)及完整的調(diào)用步驟,特別強(qiáng)調(diào)了調(diào)用.NET的WebService需要添加SOAPAction請(qǐng)求頭,感興趣的朋友跟隨小編一起看看吧2026-03-03
Mybatis-Plus中使用@DS注解動(dòng)態(tài)選擇數(shù)據(jù)源的源碼解讀
這篇文章主要介紹了Mybatis-Plus中使用@DS注解動(dòng)態(tài)選擇數(shù)據(jù)源的源碼解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Mybatis批量更新對(duì)象數(shù)據(jù)的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了Mybatis批量更新對(duì)象數(shù)據(jù)的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01

