@[TOC](Java Map getOrDefault() 示例 | Map获取值为空则取默认值)

getOrDefaultjava.util.Map的默认方法,在Java 8中被引入。

getOrDefault方法返回给定键的值,如果没有与该键相关的值,那么将返回指定的默认值。

找到该方法的签名。

default V getOrDefault(Object key, V defaultValue)

key: 要获得该值的键。
defaultValue: 默认值。

返回值是一个与键相关的值,如果没有则返回默认值。

例1:在本例中,我们使用HashMap

GetOrDefault1.java

import java.util.HashMap;
import java.util.Map;public class GetOrDefault1 {public static void main(String[] args) {Map<Integer, String> studentMap = new HashMap<>();studentMap.put(101, "Mahesh");studentMap.put(102, "Suresh");studentMap.put(103, "Krishna");String defaultValue = "No Student";String stdName = studentMap.getOrDefault(102, defaultValue);System.out.println(stdName);stdName = studentMap.getOrDefault(104, defaultValue);System.out.println(stdName);stdName = studentMap.getOrDefault(105, defaultValue);System.out.println(stdName);     }
}

输出

Suresh
No Student
No Student

对于键102,在Map中存在相关的值,所以我们得到该值。

对于键104105,没有相关的值,因此我们将得到指定的默认值。

例2:在本例中,我们使用的是LinkedHashMap

GetOrDefault2.java

import java.util.LinkedHashMap;
import java.util.Map;public class GetOrDefault2 {public static void main(String[] args) {Map<Integer, Integer> numberMap = new LinkedHashMap<>();numberMap.put(1, 100);numberMap.put(2, 200);numberMap.put(3, 300);Integer defaultValue = 0;Integer val = numberMap.getOrDefault(2, defaultValue);System.out.println(val);val = numberMap.getOrDefault(6, defaultValue);System.out.println(val);val = numberMap.getOrDefault(7, defaultValue);System.out.println(val);     }
}

输出

200
0
0

例3: 在本例中,我们使用TreeMap

GetOrDefault3.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;public class GetOrDefault3 {public static void main(String[] args) {Map<String, List<String>> treeMap = new TreeMap<>();treeMap.put("color", Arrays.asList("Orange", "Yellow"));treeMap.put("game", Arrays.asList("Cricket", "Hockey"));List<String> defaultValue = new ArrayList<>();List<String> val = treeMap.getOrDefault("game", defaultValue);System.out.println(val);val = treeMap.getOrDefault("city", defaultValue);System.out.println(val);}
}

输出

[Cricket, Hockey]
[]

参考文献

【1】Java doc: Map
【2】Java Map getOrDefault() Example

【Java 8 新特性】Java Map getOrDefault() 示例 | Map获取值为空则取默认值相关推荐

  1. 【Java代码】反射机制处理传递给mapper文件的非Map类型参数对象(指定属性为空则设置默认值)

    1. why 为什么要拦截传递给 mapper 文件的参数对象呢?因为要对指定属性设置默认值.如何拦截传递给 mapper 文件的参数对象可以参考<使用(org.apache.ibatis.pl ...

  2. Java - JDK8新特性,代码demo示例;

    哈哈哈哈大魔都下雪啦,敲段代码暖和暖和,嘿嘿 public class jdk8Test {@Testpublic void LambdaNew() {//before jdk8List<Str ...

  3. Java 8 新特性 宋红康跟学

    Java 8 新特性 Java 8 新特性简介 思维导图 并行流与串行流 Lambda表达式 Lambda 表达式语法 语法格式一:无参,无返回值,Lambda体只需一条语句 语法格式二:Lambda ...

  4. Java 10新特性

    Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...

  5. java自动化测试语言高级之Java 9 新特性

    java自动化测试语言高级之Java 9 新特性 文章目录 java自动化测试语言高级之Java 9 新特性 Java 9 新特性 Java 9 新特性 Java 9 发布于 2017 年 9 月 2 ...

  6. 七、Java 14 新特性

    七.Java 14 新特性 Java 14 已如期于 2020 年 3 月 17 日正式发布,此次更新是继半年前 Java 13 这大版本发布之后的又一次常规版本更新,即便在全球疫情如此严峻形势下,依 ...

  7. java自动化测试语言高级之Java 8 新特性

    java自动化测试语言高级之Java 8 新特性 文章目录 java自动化测试语言高级之Java 8 新特性 Java 8 新特性 Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 ...

  8. Java 8新特性终极指南

    在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8--lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Ja ...

  9. Java 9 新特性概述

    转载自 Java 9 新特性概述 Java 9 正式发布于 2017 年 9 月 21 日 .作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化.其中最重要的改动是 ...

最新文章

  1. 经典重温:卡尔曼滤波器介绍与理论分析
  2. VC中使用Matlab Engine出现无法找到libeng.dll的问题
  3. MATLAB读取一张RGB图片转成YUV格式
  4. Apache PDFBox 存在高危 XXE 漏洞,建议升级至 2.0.15
  5. 《『若水新闻』客户端开发教程》——01.课程介绍
  6. Azure手把手系列 3:把IT的钱花在刀刃上
  7. matlab自考本科真题,行政管理学自考专科试题及答案
  8. c语言 字节 半字 字,PLC的位,半字节,字节,字介绍
  9. 模板题——位运算,离散化,区间合并
  10. python下载第三方库失败的解决办法
  11. 单片机c语言如何精确延时,单片机C语言精确延时值的计算
  12. 宁芝84静电容(蓝牙双模)键盘说明书
  13. 【初识Unity】UI游戏:看看你能答对几题?(游戏可下载)
  14. UI设计到底是什么:什么叫ui设计?
  15. 奇门遁甲排盘方:定局
  16. android 圆形渐变背景,android实现圆形渐变进度条
  17. 如何优化PNG,JPG图片减小图片文件大小
  18. 台式计算机文件打不开怎么回事,电脑打不开文件是怎么回事 电脑打不开文件是什么原因...
  19. python一行代码实现白噪声检测
  20. ALM系统开发工程师职业发展调查

热门文章

  1. day17-面向对象和json
  2. 个人常用网址汇总 逐步更新
  3. 罗马复兴各民族兵种详细参数——希腊篇
  4. C语言程序设计—循环设计 编写一个程序打印如下对称图形(行数由键盘输入1-9范围的值),例如下面是输入数字4时的情形:
  5. 2020年保研、夏令营、预推免记录
  6. 硬盘插电脑上读不出来的解决方案
  7. Java每日练习---自由落体运动
  8. 语义SLAM论文以及code地址总结
  9. Qt如何实现圆角效果
  10. python从txt拿取数据_python爬虫今日热榜数据到txt文件的源码