JDK8新增便利的Map默认值方法getOrDefault

首先必须要说map中get的方法

原来get方法呢

  get
  public V get(Object key)
返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。更确切地讲,如果此映射包含一个满足 (key==null ? k==null : key.equals(k)) 的从 k 键到 v 值的映射关系,则此方法返回 v;否则返回 null。(最多只能有一个这样的映射关系。)

返回 null 值并不一定 表明该映射不包含该键的映射关系;也可能该映射将该键显示地映射为 null。可使用 containsKey 操作来区分这两种情况。

但是现在更新啦在取值这一块可以随心所欲啦

使用   Map.getOrDefault(Object, V)

Map的新方法getOrDefault(Object,V)允许调用者在代码语句中规定获得在map中符合提供的键的值,否则在没有找到提供的键的匹配项的时候返回一个“默认值”。下一段代码列举对比了如何在JDK8之前检查一个map中匹配提供键的值是否找到,没找到匹配项就使用一个默认值是如何实现的,并且现在在JDK8中是如何实现的。

/*
 * 示范Map.getOrDefault方法并和JDK8之前的实现方法做对比。JDK8
 * 中新增的Map.getOrDefault方法相比于传统的实现方法,所用的代码行数更少
 * 并且允许用一个final类型的变量来接收返回值。 
 */
 
// JDK8之前的实现方法
String capitalGeorgia = statesAndCapitals.get("Georgia");
if (capitalGeorgia == null)
{
   capitalGeorgia = "Unknown";
}
 
// JDK8的实现方法
final String capitalWisconsin = statesAndCapitals.getOrDefault("Wisconsin", "Unknown");
    原文作者:jianingkid
    原文地址: https://blog.csdn.net/jianingkid/article/details/52197958
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞