引言
Java 8中引入了許多新的數據類型和方法,其中getOrDefault()是一個在Map中非常有用的方法。本文將詳細介紹getOrDefault()的用法以及如何在代碼中使用它。getOrDefault()方法返回Map中指定鍵的值,如果該鍵不存在,則返回默認值。這在處理Map時是非常有用的。
正文
一、getOrDefault()方法使用
在Java 8之前,如果想要在Map中查詢一個不存在的鍵,需要進行多重判斷,例如:
Map<String, Integer> map = new HashMap<>(); String key = "foo"; Integer value; if (map.containsKey(key)) { value = map.get(key); } else { value = 0; }
使用getOrDefault()方法,可以使代碼更加簡潔明了。具體使用方法如下:
Map<String, Integer> map = new HashMap<>(); String key = "foo"; Integer value = map.getOrDefault(key, 0);
這樣可以告訴Java,如果Map中存在key所指定的鍵,則返回它所對應的值;否則返回0。
二、getOrDefault()方法的實現
雖然getOrDefault()看起來很簡單,但是它提供了一個重要的便利:可以使用默認值避免在訪問Map時出現空指針異常。如果鍵不存在,getOrDefault()方法就會返回一個指定的默認值,就像下面這樣:
default V getOrDefault(Object key, V defaultValue) { V v; return (((v = get(key)) != null) || containsKey(key)) ? v : defaultValue; }
這裡的default是一種特殊的修飾符,表示該方法是接口的默認實現。getOrDefault()方法的實現很簡單。如果Map中有key對應的值,則返回它;否則就檢查該Map是否包含指定的鍵,如果包含則返回默認值,否則返回null。
三、使用示例
下面是一個使用getOrDefault()方法的示例。假設我們有這樣一個Map:
Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3);
那麼,我們可以使用getOrDefault()方法來獲取鍵所對應的值,例如:
System.out.println(map.getOrDefault("apple", 0)); // 輸出1 System.out.println(map.getOrDefault("pear", 0)); // 輸出0
這樣,如果getKey()返回的鍵在Map中不存在,就返回0,而不是null。
四、總結
Java 8中的getOrDefault()方法是Map中的一種新方法,可以避免在訪問Map時出現錯誤。使用getOrDefault()方法可以使用默認值來避免空指針異常,並且代碼更加簡潔明了。雖然實現getOrDefault()方法的代碼很簡單,但是它是一個非常有用的編程工具,可以提高開發效率。
五、代碼示例
import java.util.HashMap; import java.util.Map; public class ExampleGetOrDefault { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); System.out.println(map.getOrDefault("apple", 0)); // 輸出1 System.out.println(map.getOrDefault("pear", 0)); // 輸出0 } }
原創文章,作者:STSF,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/139547.html