如今,在Java开发中我们经常需要使用Map来实现存储和检索操作。但是在实际项目中,我们经常会面临这样的问题,就是当我们获取Map中某个不存在的key时,程序会抛出异常,这就给我们的项目带来了一定的风险。Java 8提供了一个新的API:mapGetOrDefault方法来解决该问题。本文将会通过实例深入了解mapGetOrDefault方法的用法以及优势。
一、解决问题场景
在集合中存储键值对的时候,如果我们在使用get()方法获取某个key对应的value时,如果该key不存在,程序就会返回null。这样的null对于程序的后续操作来说可能是致命的。当我们调用value的方法或者对value进行操作时,如果value为null,就有可能导致NullPointerException异常的抛出。因此,在实际项目中,当Map中不存在该key时,我们需要给它赋一个默认值。这时候就需要用到mapGetOrDefault()方法。
二、mapGetOrDefault()方法的使用
Map接口有一个默认方法,叫做mapGetOrDefault()。该方法用于获取Map中指定key对应的value,如果该key不存在,则返回默认值。
mapGetOrDefault(Object key, V defaultValue);
其中,key是Map中的键,V是Map中的值,defaultValue是指定的默认值。
如果key在Map中存在,则返回Map中对应的value值;否则返回defaultValue值。
下面通过一个简单的例子来说明mapGetOrDefault的用法:
Map<String, String> books = new HashMap<>(); books.put("Java编程思想", "皮尔斯"); books.put("Java核心技术卷一", "霍斯特曼"); books.put("Effective Java中文版", "Joshua Bloch"); String bookName = books.getOrDefault("Thinking in Java", "默认值"); System.out.println(bookName);
上面这个例子中,我们先实例化了一个Map对象,然后通过put()方法向其中添加了三个键值对。接着调用getOrDefault()方法获取指定的key对应的value值,如果key不存在则返回默认值。运行结果如下:
默认值
由于map中不存在名为”Thinking in Java”的key,所以返回了默认值。
三、mapGetOrDefault()方法的优势
在项目中,mapGetOrDefault方法的使用有以下几个优势:
1. 代码简洁
使用mapGetOrDefault()方法可以在不使用if/else或者try/catch语句的情况下获取Map中指定key对应的value值,代码更加简洁易懂,让程序的逻辑更加清晰。
2. 键值为null的情况
在使用get()方法获取Map中指定key对应的value时,如果该key为null,程序会返回null。但是使用mapGetOrDefault()方法则不会出现这种情况。如果key值为null,该方法会返回defaultValue值。
3. 保证程序的健壮性
在项目中,如果使用get()方法获取Map中的value值时,如果value为null,调用value的方法或者对value执行操作就会抛出NullPointerException异常,从而导致程序的崩溃。但是使用mapGetOrDefault()方法可以避免该异常的出现,保证程序的健壮性。
总结:
mapGetOrDefault方法是Java 8中增加的方法之一,它的出现解决了我们经常使用的取默认值的场景。在实际开发中,mapGetOrDefault方法可以让我们的代码更简洁,保证程序的健壮性,避免代码抛出NullPointerException异常,整体提高开发效率。
原创文章,作者:HCHLC,如若转载,请注明出处:https://www.506064.com/n/315766.html