CodeGym /Java 博客 /随机的 /Java 中的 HashMap getOrDefault 方法
John Squirrels
第 41 级
San Francisco

Java 中的 HashMap getOrDefault 方法

已在 随机的 群组中发布

Java 中 HashMap 的 getOrDefault 方法是什么?

getOrDefault方法返回映射到HashMap中指定键的值。如果该键不存在,则返回默认值。”
java.util.HashMap类带有getOrDefault方法以提供传递默认值额外权限。默认值可用于各种情况下的不同目的。它的用法和与简单的get方法的比较将在后面的帖子中解释。

getOrDefault() 方法的标头是什么?

getOrDefault方法的常规标头定义如下。

hashMap.getOrDefault(Object key, Object defaultValue)

传递的参数

方法头有两个参数。它们连同它们的数据类型一起在下面列出。
  1. 第一个是Object 类型的指定键。
  2. 另一个对象类型是参数是作为方法参数为对象键传递的默认值。

getOrDefault() 方法的工作

您可以通过以下两个简单步骤了解getOrDefault()方法的工作原理。
  1. getOrDefault (key, defaultValue)旨在获取HashMap中的键对应值。
  2. 如果有与key关联的,则返回该值。另一方面,如果该值不可用,则返回作为参数传递给此方法的默认值。

示例 1


import java.util.HashMap;

public class Driver1{

	public static void main(String[] args) {

		// Declare a HashMap
		HashMap weekDays = new HashMap<>();

		// Add data to the HashMap
        weekDays.put("Monday", "Working Day");
        weekDays.put("Tuesday", "Working Day");
        weekDays.put("Wednesday", "Working Day");
        weekDays.put("Thursday", "Working Day");
        weekDays.put("Friday", "Working Day");
        weekDays.put("Saturday", "Off Day");
        weekDays.put("Sunday", "Off Day");
        
        // Print the data in the HashMap
        System.out.println("Working Schedule : " + weekDays + "\n");
              
  
        // Check if the given key is present in the Map
        // IF yes, its value will be returned
        String sunday = weekDays.getOrDefault("Sunday", "No Announcements Yet.");
        System.out.println("Is Sunday a working day?  " + sunday);
        
        // IF not, the default value passed will be returned
        String christmas = weekDays.getOrDefault("Christmas", "National Holiday");
        System.out.println("Is Christmas a working day?  " + christmas);

        // Key not present in the HashMap
        // Default Value returned
        String easter = weekDays.getOrDefault("Easter", "National Holiday");
        System.out.println("Is Easter a working day?  " + easter);
	}

}

输出

工作时间表:{星期一=工作日,星期四=工作日,星期五=工作日,星期日=休息日,星期三=工作日,星期二=工作日,星期六=休息日}星期天是工作日吗?休息日 圣诞节是工作日吗?国庆节复活节是工作日吗?法定假日

为什么使用 getOrDefault() 而不是 get() 方法?

Java 中简单的get()方法用于获取HashMap中请求的的值。如果找到键,则返回值。如果找不到密钥,则返回“null”。当预期返回默认值时, getOrDefault ()方法优于简单的 get 方法。这里有一个简单的例子供您理解。

示例 2


import java.util.HashMap;
public class Driver2{

	public static void main(String[] args) {

	  HashMap<Object, Boolean> holidays = new HashMap<>();

	  // Add data to the HashMap
        holidays.put("Saturday",  true);
        holidays.put("Sunday", true);
        
        // Print the data in the HashMap
        System.out.println("Holidays: " + holidays + "\n");

        // Key not present, default value returned
        Object christmas = holidays.getOrDefault("Christmas", true);
        System.out.println("Is Christmas a holiday?  " + christmas);
        
        // Key not present, null returned
        christmas = holidays.get("Christmas");
        System.out.println("Is Christmas a holiday?  " + christmas);
	}
}

输出

假期:{Sunday=true, Saturday=true}圣诞节是假期吗?真的 圣诞节是假期吗?无效的
您可以看到getOrDefaultget方法 之间的区别。如输出中所打印的,如果未找到键, 第一个方法返回默认值,而后者返回 null。

结论

到本文结束时,您必须熟悉HashMapgetOrDefault()方法。建议您通过实践来学习。如果您遇到困难,请随时再次查看这篇文章。到那时,继续练习并继续成长!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION