Map的key和value是否允许null?

直接写程序验证一下:

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;/*** @author robin*/
public class MyTest {public static void main(String[] args) {Map<Object, Object> m1 = new HashMap<>();Map<Object, Object> m2 = new TreeMap<>();Map<Object, Object> m3 = new Hashtable<>();Map<Object, Object> m4 = new ConcurrentHashMap<>();try {m1.put("zzz", null);} catch (Exception e) {System.out.println("m1-a:" + e.getMessage());}try {m1.put(null, null);} catch (Exception e) {System.out.println("m1-b:" + e.getMessage());}try {m2.put("zzz", null);} catch (Exception e) {System.out.println("m2-a:" + e.getMessage());}try {m2.put(null, null);} catch (Exception e) {System.out.println("m2-b:" + e.getMessage());}try {m3.put("zzz", null);} catch (Exception e) {System.out.println("m3-a:" + e.getMessage());}try {m3.put(null, null);} catch (Exception e) {System.out.println("m3-b:" + e.getMessage());}try {m4.put("zzz", null);} catch (Exception e) {System.out.println("m4-a:" + e.getMessage());}try {m4.put(null, null);} catch (Exception e) {System.out.println("m4-b:" + e.getMessage());}}}

执行结果:

m2-b:null
m3-a:null
m3-b:null
m4-a:null
m4-b:null

结论如下表:

转载于:https://www.cnblogs.com/amunote/p/10211760.html

Map 的 key、value 是否允许为null相关推荐

  1. 使用可变对象作为Java Map的key,会带来潜在风险的一个例子

    package hashMap;import java.util.HashMap; import java.util.Map;/* * 可变对象是指创建后自身状态能改变的对象.换句话说,可变对象是该对 ...

  2. java map byte[],java中byte数组不能作为map的key使用

    今天在使用java写代码的时候,用byte数组作为map的key来使用,发现在遍历的时候get到之前传进去的值总是为空,很是困惑,后来查了下资料发现java中的字节数组不能直接作为map的key来使用 ...

  3. Java小知识-----Map 按Key排序和按Value排序

    Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...

  4. 各种集合key,value能否为null

    HashMap key,value都可以为null static final int hash(Object key) {int h;return (key == null) ? 0 : (h = k ...

  5. mysql2个字段还会map_通过注解实现MyBatis将sql查询结果的两个字段分别作为map的key,value...

    package com.lsz.config.enums; import java.lang.annotation.*; /** * 将查询结果映射成map的注解,其中第一个字段为key,第二个字段为 ...

  6. MySQL.MyBatis怎么将查询的两个字段作为Map的key和value

    MySQL.MyBatis怎么将查询的两个字段作为Map的key和value 问题的由来 前端使用Echarts图标显示汇总数据.需要形式如下的数据: {"C20": 42.01, ...

  7. new Map()详细介绍 map .set(key,value)map.sizemap.get(key)map.has(key)map.delete(key)map.clear()

    1.let map = new Map();     2.let map = new Map([[key,value],[key,value]]); //默认带初始化参数的定义 理解就是:new Ma ...

  8. java map key 升序_Java Map 按 key 升序排序

    最近开发微信和支付宝的服务端支付,涉及到字典的排序和 url 参数转换成字典的操作,整理了一个工具类: import java.util.ArrayList; import java.util.Col ...

  9. 关于ConcurrentHashMap的key和value不能为null的深层次原因

    前面分析ConcurrentHashMap的过程中可以发现,其要求key和value不能为空.实际上,不仅仅是ConcurrentHashMap,前面的HashTable,以及ConcurrentSk ...

最新文章

  1. HA: Forensics靶机渗透测试
  2. 2008R2Win7管理二十八Mail之基本使用
  3. python学习笔记(3) -- 常用数据类型
  4. 计算机山西特岗考试题库,山西特岗历年试题
  5. 腾讯云centos7搭建javaweb服务器(本人亲自经历,详细)
  6. win7安装mysql8.0创建用户_CentOS如何安装MySQL8.0、创建用户并授权的详细步骤
  7. (二)Mysql 基础了解,修改字符集,配置文件
  8. java获取mp3的时长和播放mp3文件
  9. 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
  10. 项目讨论:本地手机经销商怎样用移动站点开展本地营销?
  11. 奇迹s12源码_muserver 奇迹MU服务端VC++源码 适合研究 的朋友 Game Simulator 模拟 器 269万源代码下载- www.pudn.com...
  12. 24_MySQL高可用之MMM
  13. markdown如何设置图片大小_cnblogs文章/MarkDown内如何调整图片的宽度?
  14. 【转载】知行合一在年轻人中的作用
  15. LaTeX入门学习(8)(术语)
  16. 我94年的,做了一年外包我就跑路了
  17. Python自动化操作Excel绘制条形图!
  18. UICollectionView左对齐
  19. 视频批量剪辑:如何给视频添加特效,比如:色彩变幻效果特效,怎么制作?
  20. 用什么软件压缩视频最好?最好的视频压缩软件?

热门文章

  1. python get setdefault_python 字典 setdefault()和get()方法比较详解
  2. 桌面整理工具不显示文件夹_「工具神器」你的桌面该整理了。
  3. 使用electron脚手架electron-vue
  4. 向一个对象数组里面添加新的属性 + 将一个对象数组数据拿出来变成另一个对象
  5. vue2.0+stylus实现星级评定组件,computed计算属性实现全星半星,动态改变星级,多种星星规格
  6. 计算机基础:离散数学和完备性
  7. matplotlib显示中文字体
  8. RabbitMQ code=200, text=Goodbye比较萌新的问题大佬绕道,乌拉~!
  9. Dell R710服务器磁盘恢复数据库一例(记录)
  10. onchange事件与onpropertychange事件的区别