Map中key和value值是否可以为null或空字符串?

Map中key和value值是否可以为null或空字符串?

答案:

  • HashMap既支持分别为空/null,也支持key和value同时为空/null
  • Hashtable不支持key和value存储null,但支持存空字符串**

HashMap

  • HashMap是中支持空键和空值的,不论存入null或者空字符串程序都不会报错。

  • 不过需要注意的是若多条数据key值相同(同为null或者空字符串),则写入时后者会把前者的value值覆盖

  • key相同导致数据前者被后者覆盖

  • key相同导致数据被覆盖,注释掉后就显示了

  • 详细代码如下

复制代码
  HashMap<String, String> maps = new HashMap<>();
  maps.put("1", "q");
  maps.put("2", "");
  maps.put("", "");
  maps.put("", "3");
  maps.put("4", null);
  maps.put(null, null);
  maps.put(null, "6");
  for (String key : maps.keySet()) {
      System.out.println("Key-->" + key + "   Value-->" + maps.get(key));
  }

Hashtable

  • Hashtable不支持为null,key和value均不可以存储null,存在一个则程序报空指针异常。但可以存空字符串

  • 空字符串均不报错

  • value为null报错空指针异常NullPointerException

  • key为null报错空指针异常

  • key和value均为null报错空指针异常

复制代码
  Hashtable<String,String> hashtable = new Hashtable<>();
  hashtable.put("1","q");
  hashtable.put("2","");
  hashtable.put("","");
  hashtable.put("","3");
  // hashtable.put("4",null);
  // hashtable.put(null,"6");
  // hashtable.put(null,null);
  // for (String key : hashtable.keySet()) {
  //     System.out.println("Key-->" + key + "   Value-->" + hashtable.get(key));
  // }
  hashtable.forEach((key, value) -> {
      System.out.println("Key-->" + key + "   Value-->" + hashtable.get(key));
  });

-----------------------------------------------------------------------------------

offer突击训练营简介:

1:针对不知道怎么面试,面试没有信心的小伙伴,我们会给你一个offer保障。

2:我们会监督你15-20天内把面试体系技术点掌握至少7成,这样足够你去找到满意的工作了。

3:我们是面向面试学习指导,不会带你们去写代码,会把项目真实开发的迭代过程和技术细节如何实现业务功能都详细教清楚,你能在面试中流畅表达清楚就行了,项目经验你不用担心(技术老师提供的真实项目经验肯定拿的出手),自己学和别人带着系统学,效率完全不一样。

详情请点击这里offer突击训练营,给你一个offer的保障,求职跳槽的看过来!

相关推荐
海棠AI实验室几秒前
OpenClaw 落地指南:在 Windows 本地零基础部署 OpenClaw 与自动化强化学习 (RL) 系统
运维·windows·自动化·openclaw
lucky-billy1 分钟前
Windows 上本地部署 OpenClaw 保姆级教程
windows·openclaw
盐水冰1 分钟前
【烘焙坊项目】后端搭建(7)- 套餐管理界面
java·学习
安当加密2 分钟前
指纹一按,安全上线:SLA指纹登录如何为生产线 Windows 电脑实现低成本防勒索?
windows·安全·电脑
XiaoHu02073 分钟前
C/C++数据结构与算法(第二弹)
java·开发语言·数据结构
yqzyy5 分钟前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh
溜达的大象5 分钟前
后端常用技术全方位分析:从核心标配到淘汰弃用,一文理清技术选型逻辑
网络·数据库
Chan165 分钟前
双非 Java 后端首次实习 | 个人经验分享总结
java·开发语言·spring boot·spring·java-ee·intellij-idea
EveryPossible5 分钟前
服务器测试指南
服务器
AMoon丶6 分钟前
C++新特性-智能指针
linux·服务器·c语言·开发语言·c++·后端·tcp/ip