【Java 8 新特性】Java Map getOrDefault() 示例 | Map获取值为空则取默认值
@[TOC](Java Map getOrDefault() 示例 | Map获取值为空则取默认值)
getOrDefault
是java.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
中存在相关的值,所以我们得到该值。
对于键104
和105
,没有相关的值,因此我们将得到指定的默认值。
例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获取值为空则取默认值相关推荐
- 【Java代码】反射机制处理传递给mapper文件的非Map类型参数对象(指定属性为空则设置默认值)
1. why 为什么要拦截传递给 mapper 文件的参数对象呢?因为要对指定属性设置默认值.如何拦截传递给 mapper 文件的参数对象可以参考<使用(org.apache.ibatis.pl ...
- Java - JDK8新特性,代码demo示例;
哈哈哈哈大魔都下雪啦,敲段代码暖和暖和,嘿嘿 public class jdk8Test {@Testpublic void LambdaNew() {//before jdk8List<Str ...
- Java 8 新特性 宋红康跟学
Java 8 新特性 Java 8 新特性简介 思维导图 并行流与串行流 Lambda表达式 Lambda 表达式语法 语法格式一:无参,无返回值,Lambda体只需一条语句 语法格式二:Lambda ...
- Java 10新特性
Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...
- java自动化测试语言高级之Java 9 新特性
java自动化测试语言高级之Java 9 新特性 文章目录 java自动化测试语言高级之Java 9 新特性 Java 9 新特性 Java 9 新特性 Java 9 发布于 2017 年 9 月 2 ...
- 七、Java 14 新特性
七.Java 14 新特性 Java 14 已如期于 2020 年 3 月 17 日正式发布,此次更新是继半年前 Java 13 这大版本发布之后的又一次常规版本更新,即便在全球疫情如此严峻形势下,依 ...
- java自动化测试语言高级之Java 8 新特性
java自动化测试语言高级之Java 8 新特性 文章目录 java自动化测试语言高级之Java 8 新特性 Java 8 新特性 Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 ...
- Java 8新特性终极指南
在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8--lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Ja ...
- Java 9 新特性概述
转载自 Java 9 新特性概述 Java 9 正式发布于 2017 年 9 月 21 日 .作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化.其中最重要的改动是 ...
最新文章
- 经典重温:卡尔曼滤波器介绍与理论分析
- VC中使用Matlab Engine出现无法找到libeng.dll的问题
- MATLAB读取一张RGB图片转成YUV格式
- Apache PDFBox 存在高危 XXE 漏洞,建议升级至 2.0.15
- 《『若水新闻』客户端开发教程》——01.课程介绍
- Azure手把手系列 3:把IT的钱花在刀刃上
- matlab自考本科真题,行政管理学自考专科试题及答案
- c语言 字节 半字 字,PLC的位,半字节,字节,字介绍
- 模板题——位运算,离散化,区间合并
- python下载第三方库失败的解决办法
- 单片机c语言如何精确延时,单片机C语言精确延时值的计算
- 宁芝84静电容(蓝牙双模)键盘说明书
- 【初识Unity】UI游戏:看看你能答对几题?(游戏可下载)
- UI设计到底是什么:什么叫ui设计?
- 奇门遁甲排盘方:定局
- android 圆形渐变背景,android实现圆形渐变进度条
- 如何优化PNG,JPG图片减小图片文件大小
- 台式计算机文件打不开怎么回事,电脑打不开文件是怎么回事 电脑打不开文件是什么原因...
- python一行代码实现白噪声检测
- ALM系统开发工程师职业发展调查