一、什麼是getOrDefault方法
Java中的Map是一種最基本的數據結構之一,用於存儲鍵值對。在Map中,getOrDefault()是一種獲取指定鍵的值,如果沒有鍵存在,則返回提供的默認值的方法。
Map map = new HashMap(); Integer value = map.getOrDefault("key", 0);
這個代碼將嘗試從Map中檢索鍵為「key」的值並將其賦給變量「value」。
如果該鍵存在,則「value」將以相應的值被賦值。否則,0將作為默認值被賦給「value」。
二、使用示例
1、使用默認值
getOrDefault()方法可用於確保您的代碼不會因為沒有找到鍵而發生異常。
Map map = new HashMap(); Integer value = map.getOrDefault("key", 0);
假設我們有一個Map,它映射字母與其出現次數。我們希望獲取某個字母的數量,但在Map中不存在該字母。這時候我們可以使用默認值來避免異常的出現:
Map map = new HashMap(); map.put("a", 1); map.put("b", 2); map.put("c", 3); Integer value = map.getOrDefault("d", 0); System.out.println(value); //輸出: 0
這個代碼中的「value」變量將被賦值為0,因為Key「d」在Map中不存在。
2、使用指定值
您也可以使用指定值來取代默認值。
Map map = new HashMap(); map.put("a", 1); map.put("b", 2); Integer value = map.getOrDefault("b", 0); System.out.println(value); //輸出: 2
這裡的「value」變量將被賦值為2,因為Map中包含鍵「b」。
3、默認值可以是方法調用
在默認值位置可以是一個方法調用。
public Integer getValue() { return 0; } Map map = new HashMap(); map.put("a", 1); map.put("b", 2); Integer value = map.getOrDefault("c", getValue()); System.out.println(value); //輸出: 0
這裡的「getValue()」方法返回值為0,因此當Map中不存在鍵「c」時,「value」變量將被賦值為0。
三、使用場景
1、Map的遍歷
在遍歷Map時,getOrDefault()方法可用於初始化Map中每個鍵的默認值。這是一種方法,可以確保在嘗試訪問數據之前,Map中包含所需的鍵。
Map map = new HashMap(); for (String key : keys) { map.put(key, map.getOrDefault(key, 0) + 1); }
在上述代碼中,「keys」是一個包含多個鍵的列表。對於每個鍵,我們檢查它是否已經存在於Map中。如果它存在,我們將其值加1。否則,我們將該鍵添加到Map中,並初始化其值為1。
2、處理字典
在處理字典時,我們經常需要對Map中不存在的單詞進行處理。getOrDefault()方法可用於為單詞設置默認值。
Map dictionary = new HashMap(); //... String word = "java"; Integer count = dictionary.getOrDefault(word, 0); dictionary.put(word, count + 1);
在上述代碼中,我們想要處理名為「java」的單詞。如果該單詞不存在於字典中,則在Map中將其初始化為0,並將計數加1。
四、總結
getOrDefault()方法是Java Map API的一部分。它可用於確保代碼不會因為缺少鍵而引發異常。此方法可用於處理字典或Map的遍歷。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/232035.html