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

news2025/3/15 15:14:14

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的保障,求职跳槽的看过来!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1103681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python每日一练(9)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

右值引用+移动语义

目录 右值引用 引入 介绍 左值 左值引用 左值引用的缺陷 引入 缺陷 解决 右值 纯右值 将亡值 右值引用 move函数 介绍 底层实现 参数 -- 通用引用类型 引用折叠 折叠规则: 返回值 remove_reference 移动 引入 介绍 移动构造函数 介绍 是否抛出异常…

SpringBoot+SpringSecurity项目的创建

首先创建一个springboot项目&#xff0c;注意springboot要求jdk版本在17以上 等项目构建完成之后&#xff0c;在pom文件中加入SpringSecurity的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-securi…

Unity之ShaderGraph如何实现边缘光效果

前言 游戏中最常用的一个效果就是边缘光了&#xff0c;既可以做物体的高亮效果&#xff0c;也可以给人物皮肤表面添加光泽。如下图所示&#xff1a; 实现原理 边缘光的原理就是Fresnel节点的底层逻辑。 Fresnel&#xff1a;菲涅尔效应是根据视角不同表面上反射率不同的效应…

MIT6.5830 Lab0-Go tutorial实验记录(三)

MIT6.5830 Lab0-Go tutorial实验记录&#xff08;三&#xff09; – WhiteNights Site 标签&#xff1a;Golang 在前面两次实验记录的铺垫&#xff0c;是时候完成第一项任务了。 实验步骤 补全handlers.go中缺失的代码 先来看第一个部分&#xff0c;从RidershipDB获取图像数据…

老师如何发布考试成绩?

成绩查询页面是什么&#xff1f;如何用各种代码、Excel来实现让学生自助查询成绩&#xff1f; 作为老师&#xff0c;发布考试成绩是教学过程中的一个重要环节。传统的做法是&#xff0c;老师手动计算每个学生的分数&#xff0c;然后将成绩单打印出来并逐个发放给学生。这种方式…

RISCV——RV32I指令集详述

一、指令编码 6种指令格式 40条基本整数指令 二、指令实现 load/store 参考链接&#xff1a;riscv load/store

【mysql】关于mysql的数据结构特点 索引特点

文章目录 二叉树红黑树 b treehash结构b tree索引存放特点myisamInnoDB 最左原则主键相关知识点缓存池淘汰机制 前言&#xff1a;翻自己博客 发现缺少mysql数据结构和索引相关内容 两年前整理的mysql知识点 一直存在于博主的笔记本里面 &#xff08;是的 纸质的那种笔记本 不是…

python:代码加密流水线

通过以下五步&#xff0c;将python代码加密&#xff0c;且只能在指定电脑上运行。 三层加密。只加密核心函数。将参数暴露在外。都可以实现。 文章目录 一、获取机器码二、加密机器码三、将加密机器码写入ism函数中四、加密代码&#xff08;可有可无&#xff09;1.使用[https:…

图像特征之SIFT

SIFT介绍 尺度不变特征转换即SIFT (Scale-invariant feature transform)是一种计算机视觉的算法。它用来侦测与描述影像中的局部性特征&#xff0c;它在空间尺度中寻找极值点&#xff0c;并提取出其位置、尺度、旋转不变量&#xff0c;此算法由 David Lowe在1999年所发表&#…

学习mapster的基本用法

正在学习的开源博客项目Blog .NET Core中采用mapster实现对象映射&#xff0c;个人理解对象映射框架主要用于不同类型间的数据转换&#xff0c;比起个人实现的定制化的类型对类型的转换代码&#xff0c;采用对象映射框架更便捷&#xff0c;同时也能支撑各式各样的对象映射场景。…

List集合拆分为多个List

list 拆分 目录概述需求&#xff1a; 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full bus…

【LeetCode】33. 搜索旋转排序数组

1 问题 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nums…

【Godot引擎开发】算是重要点吧,好像只能算是入门教程

博主&#xff1a;_LJaXi 专栏&#xff1a; Godot | 横版游戏开发 Godot 物体规律移动内置虚函数浮点计算浮点数计算数组APIInput单例与自定义单例节点NodeSprite2DArea2DCollisionShape2DKinematicBody2DRigidBody2D Pong游戏场景安排玩家1玩家2小球记分系统主体框架节点选择文…

ansible基础

一&#xff0c;ansible简述&#xff1a; 是一款自动化运维工具&#xff0c;通过ssh对目标主机进行配置、应用部署、任务执行、编排调度等操作。它简化了复杂的环境管理和自动化任务,提高了工作效率和一致性。同时ansibie的剧木&#xff08;playbooks〉可使用YAML语言进行编写。…

三分钟快速实现MQTT网关与三菱系列PLC远程通讯

MQTT协议网关串口连接三菱FX3U操作说明V1.3 目录 一. 使用流程 二. 准备工作 2.1 需要准备如下物品 2.2 LF220网关准备工作 2.3 PLC准备工作 2.4 电脑准备工作 2.5 MQTT服务器 三. MQTT网关登陆平台配置步骤 3.1 登录 3.2 网关概况 3.3 MQTT连接配置 3…

C语言练习题-指针-(编写一个函数,接受一个整型数组和数组的长度作为参数,将数组中的元素按逆序存放)

文章目录 前言题目题目1简单的代码框架 题目2测试用例 题目3测试用例 参考答案题目1答案1解析 答案2解析 题目2答案1答案2 题目3答案1答案2 其他文章 前言 本篇文章的题目为C的基础练习题&#xff0c;指针部分。做这些习题之前&#xff0c;你需要确保已经学习了指针的知识。 本…

session 反序列化

原理详解 ctfshow 新手杯 剪刀石头布 这里我们可以发现服务器使用的处理器为php_serialize&#xff0c;与当前页面处理器不同&#xff0c;在反序列化的时候会造成一些问题。同时cleanup配置没开&#xff0c;关闭了session自动清理&#xff0c;所以我们不需要进行条件竞争。并…

pointnet和pointnet++点云分割和分类

目录 1. pointnet 1.1 点云数据的特点 1.2 模型功能 1.3 网络结构 1.3.1 分类网络 1.3.2 分割网络 2. pointnet 2.1 模型 2.2 sampling layer组件 2.3 grouping layer 2.4 pointnet 1. pointnet 1.1 点云数据的特点 &#xff08;1&#xff09;无序性&#xff1a…

深度学习——批量规范化(Batch Normalization)

深度学习——批量规范化&#xff08;Batch Normalization&#xff09; 文章目录 前言一、训练深层网络二、批量规范化层2.1. 全连接层2.2. 卷积层2.3. 预测过程中的批量规范化 三、从零实现四、使用批量规范化层的LeNet五、简洁实现六、小结总结 前言 训练深层神经网络是十分困…