如今,在Java開發中我們經常需要使用Map來實現存儲和檢索操作。但是在實際項目中,我們經常會面臨這樣的問題,就是當我們獲取Map中某個不存在的key時,程序會拋出異常,這就給我們的項目帶來了一定的風險。Java 8提供了一個新的API:mapGetOrDefault方法來解決該問題。本文將會通過實例深入了解mapGetOrDefault方法的用法以及優勢。
一、解決問題場景
在集合中存儲鍵值對的時候,如果我們在使用get()方法獲取某個key對應的value時,如果該key不存在,程序就會返回null。這樣的null對於程序的後續操作來說可能是致命的。當我們調用value的方法或者對value進行操作時,如果value為null,就有可能導致NullPointerException異常的拋出。因此,在實際項目中,當Map中不存在該key時,我們需要給它賦一個默認值。這時候就需要用到mapGetOrDefault()方法。
二、mapGetOrDefault()方法的使用
Map接口有一個默認方法,叫做mapGetOrDefault()。該方法用於獲取Map中指定key對應的value,如果該key不存在,則返回默認值。
mapGetOrDefault(Object key, V defaultValue);
其中,key是Map中的鍵,V是Map中的值,defaultValue是指定的默認值。
如果key在Map中存在,則返回Map中對應的value值;否則返回defaultValue值。
下面通過一個簡單的例子來說明mapGetOrDefault的用法:
Map<String, String> books = new HashMap<>(); books.put("Java編程思想", "皮爾斯"); books.put("Java核心技術卷一", "霍斯特曼"); books.put("Effective Java中文版", "Joshua Bloch"); String bookName = books.getOrDefault("Thinking in Java", "默認值"); System.out.println(bookName);
上面這個例子中,我們先實例化了一個Map對象,然後通過put()方法向其中添加了三個鍵值對。接着調用getOrDefault()方法獲取指定的key對應的value值,如果key不存在則返回默認值。運行結果如下:
默認值
由於map中不存在名為”Thinking in Java”的key,所以返回了默認值。
三、mapGetOrDefault()方法的優勢
在項目中,mapGetOrDefault方法的使用有以下幾個優勢:
1. 代碼簡潔
使用mapGetOrDefault()方法可以在不使用if/else或者try/catch語句的情況下獲取Map中指定key對應的value值,代碼更加簡潔易懂,讓程序的邏輯更加清晰。
2. 鍵值為null的情況
在使用get()方法獲取Map中指定key對應的value時,如果該key為null,程序會返回null。但是使用mapGetOrDefault()方法則不會出現這種情況。如果key值為null,該方法會返回defaultValue值。
3. 保證程序的健壯性
在項目中,如果使用get()方法獲取Map中的value值時,如果value為null,調用value的方法或者對value執行操作就會拋出NullPointerException異常,從而導致程序的崩潰。但是使用mapGetOrDefault()方法可以避免該異常的出現,保證程序的健壯性。
總結:
mapGetOrDefault方法是Java 8中增加的方法之一,它的出現解決了我們經常使用的取默認值的場景。在實際開發中,mapGetOrDefault方法可以讓我們的代碼更簡潔,保證程序的健壯性,避免代碼拋出NullPointerException異常,整體提高開發效率。
原創文章,作者:HCHLC,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/315766.html