温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Map集合中get不存在的key值会不会抛出异常

发布时间:2020-11-02 16:35:37 来源:亿速云 阅读:186 作者:Leah 栏目:开发技术

本篇文章为大家展示了Map集合中get不存在的key值会不会抛出异常,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

public static void main(String[] args)
{
 Map<String, String> a = new HashMap<String, String>();
 String string = a.get("a111");
 System.out.println(string);
}

在Map集合中,get一个不存在的值,不会抛出异常,获得的返回值为null。

补充知识:map中get不存在的key和containsKey方法

在Map集合中,get一个不存在的值,不会抛出异常,获得的返回值为null。

public static void main(String[] args)
{
 Map<String, String> a = new HashMap<String, String>();
 String string = a.get("a111");
 System.out.println(string);
}

Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断,例如下面的例子。

下面的代码首先创建一个由HashMap类实现的Map集合,并依次向Map集合中添加一个值对象为null和“马先生”的映射;然后分别通过get()和containsKey()方法执行这两个键对象;最后执行一个不存在的键对象。关键代码如下:

import java.util.HashMap;
import java.util.Map;
 
public class TestMapKey {
 public static void main(String[] args) {
 Map<Integer, String> map = new HashMap<Integer, String>();
 map.put(220180, null);
 map.put(220181, "马先生");
 System.out.println("get()方法的返回结果:");
 System.out.print("------ " + map.get(220180));
 System.out.print("  " + map.get(220181));
 System.out.println("  " + map.get(220182));
 System.out.println("containsKey()方法的返回结果:");
 System.out.print("------ " + map.containsKey(220180));
 System.out.print("  " + map.containsKey(220181));
 System.out.println("  " + map.containsKey(220182));
 }
}

执行上面的代码,在控制台将输出如下信息:

get()方法的返回结果:

------ null 马先生 null

containsKey()方法的返回结果:

------ true true false

结论:Map集合中不应该利用get()方法来判断是否存在某个键,因为可能map的key值存在但value的值为null

上述内容就是Map集合中get不存在的key值会不会抛出异常,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI