Java Map.getOrDefault方法详解

 更新时间:2024年01月02日 10:04:01   作者:喻师傅  
Map.getOrDefault(Object key, V defaultValue)是Java中Map接口的一个方法,用于获取指定键对应的值,如果键不存在,则返回一个默认值,这篇文章主要介绍了Java Map.getOrDefault方法详解,需要的朋友可以参考下

Java——Map.getOrDefault方法详解

Map.getOrDefault(Object key, V defaultValue)是Java中Map接口的一个方法,用于获取指定键对应的值,如果键不存在,则返回一个默认值。
该方法的签名如下:

V getOrDefault(Object key, V defaultValue)

其中,key表示要查找的键,defaultValue表示如果键不存在时返回的默认值,V表示Map中存储的值的类型。

使用getOrDefault方法,我们可以避免在获取Map中的值时出现NullPointerException异常。这是因为当Map中不存在指定的键时,get方法返回null,而如果我们直接使用get方法获取值并尝试对其进行操作,就会抛出NullPointerException异常。而使用getOrDefault方法,即使键不存在,也会返回一个默认值,从而避免了这种异常的发生。

示例代码:

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

在上述示例中,我们首先创建了一个HashMap对象,并向其中添加了两个键值对。然后,使用getOrDefault方法,分别获取了键"a"和键"c"对应的值,由于键"a"存在,因此返回其对应的值1;而键"c"不存在,因此返回默认值0。

需要注意的是,如果我们设置的默认值不是Map中存储的值的类型,则会抛ClassCastException异常。
因此,在实际使用时,建议将默认值设置为与Map中存储的值类型相同的值。

补充:

Java中map.getOrDefault()方法的使用

Map.getOrDefault(Object key, V defaultValue)方法的作用是:
当Map集合中有这个key时,就使用这个key值;
如果没有就使用默认值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对应的value
    int score = map.getOrDefault("score", 80);
    System.out.println(score);// 80,map中不存在score,使用默认值80

到此这篇关于Java Map.getOrDefault方法详解的文章就介绍到这了,更多相关Java Map.getOrDefault方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 解决springboot configuration processor对maven子模块不起作用的问题

    解决springboot configuration processor对maven子模块不起作用的问题

    这篇文章主要介绍了解决springboot configuration processor对maven子模块不起作用的问题,本文通过图文实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Java序列化常见实现方法代码实例

    Java序列化常见实现方法代码实例

    这篇文章主要介绍了Java序列化常见实现方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 详解mybatis generator代码生成器的使用

    详解mybatis generator代码生成器的使用

    MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。这篇文章主要介绍了mybatis generator代码生成器的使用,需要的朋友可以参考下
    2021-09-09
  • Spring Security短信验证码实现详解

    Spring Security短信验证码实现详解

    本文主要介绍了Spring Security短信验证码的实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • Spring AOP使用接口方式实现

    Spring AOP使用接口方式实现

    本文主要介绍了Spring AOP使用接口方式实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • springBoot+dubbo+zookeeper实现分布式开发应用的项目实践

    springBoot+dubbo+zookeeper实现分布式开发应用的项目实践

    本文主要介绍了springBoot+dubbo+zookeeper实现分布式开发应用的项目实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 快速上手Mybatis-plus结构构建过程

    快速上手Mybatis-plus结构构建过程

    这篇文章主要介绍了快速上手Mybatis-plus结构构建过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 深入学习 Java 中的 Lambda

    深入学习 Java 中的 Lambda

    Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。,需要的朋友可以参考下
    2019-06-06
  • Java调用SSE流式接口并流式返回给前端实现打字输出效果

    Java调用SSE流式接口并流式返回给前端实现打字输出效果

    在Web开发中,有时我们需要将文件以流的形式返回给前端,下面这篇文章主要给大家介绍了关于Java调用SSE流式接口并流式返回给前端实现打字输出效果的相关资料,需要的朋友可以参考下
    2024-08-08
  • Java中的SynchronousQueue阻塞队列使用代码实例

    Java中的SynchronousQueue阻塞队列使用代码实例

    这篇文章主要介绍了Java中的SynchronousQueue阻塞队列使用代码实例,SynchronousQueue是无缓冲区的阻塞队列,即不能直接向队列中添加数据,会报队列满异常,需要的朋友可以参考下
    2023-12-12

最新评论