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

本文详细介绍了Java 8中Map接口的getOrDefault()方法,该方法用于获取指定键的值,若键不存在则返回默认值。通过三个示例展示了HashMap、LinkedHashMap和TreeMap的用法,展示如何有效地处理Map中键值对的查询与默认值设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫巳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值