为了账号安全,请及时绑定邮箱和手机立即绑定

java框架的Map大家族

java框架的Map大家族

Chengl 2016-08-21 10:21:30
存在这样的键值对吗??<Key,Null> 就是一个Key映射到一个value为空的映射关系 存在吗?
查看完整描述

2 回答

?
bbi5566

TA贡献3条经验 获得超1个赞

hashmap好像只允许一个key为空,value可以多个为空,其它map都不允许为空

查看完整回答
反对 回复 2016-08-21
  • Chengl
    Chengl
    有一个疑问:教学视频里面说,判断Map容器里面是否已存在某个Key值,就是调用.get(Key)方法,如果返回的值是空,就不存在这个映射关系,就不存在当前这个Key值。你现在的Key值为3,对应的value值为空,那么调用.get(3)返回的value值肯定为空啊,但是你的Key值,又确实存在,两者好矛盾啊。 (视频是5.2节添加学生那里,输入一个学生ID,然后调用.get()方法获取对应的value值,如果值为空,就往容器里面输入学生。) 如果存在<Key,null>这样的关系,调用.get(Key)方法返回的value为空,然后你就插入这个Key值,但是已经存在这个Key值了,Map容器里面Key值又是唯一的咯,好矛盾啊。
?
残叶听风

TA贡献4条经验 获得超1个赞

//img1.sycdn.imooc.com//57b91275000127db06400647.jpg

可以看到map里面key与value都是可以为空的,我map填充了两个key value均为空,一个key为 3 value 为空,但是输出的时候for();循环里面只遍历出两个为空的,且map.get("3");也存在为空,所以,for里面的两个null;包含key为3,的

也就是说 map的 key value 都是可以为空,但是后来重复的会被替换掉

查看完整回答
反对 回复 2016-08-21
  • Chengl
    Chengl
    有一个疑问:教学视频里面说,判断Map容器里面是否已存在某个Key值,就是调用.get(Key)方法,如果返回的值是空,就不存在这个映射关系,就不存在当前这个Key值。你现在的Key值为3,对应的value值为空,那么调用.get(3)返回的value值肯定为空啊,但是你的Key值,又确实存在,两者好矛盾啊。 (视频是5.2节添加学生那里,输入一个学生ID,然后调用.get()方法获取对应的value值,如果值为空,就往容器里面输入学生。) 如果存在<Key,null>这样的关系,调用.get(Key)方法返回的value为空,然后你就插入这个Key值,但是已经存在这个Key值了,Map容器里面Key值又是唯一的咯,好矛盾啊。
  • 残叶听风
    残叶听风
    如果是这样的话,估计前提条件是map中没有key对应的value为空,如果不存在该前提,就要判断getkey为null时1.不存在这个key 2.存在这个key但是对应的value为null,这两种都要考虑到,if(map.containsKey("key"))就可以判断当前map是否存在该key ,当然应该有很多种方法,这个就不贴出代码了
  • 2 回答
  • 0 关注
  • 1378 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信