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

结论如下表:

Map 的 key、value 是否允许为null的更多相关文章

  1. 理解ThreadLocal —— 一个map的key

    作用: 当工作于多线程中的对象使用ThreadLocal维护变量时,threadLocal为每个使用该变量的线程分配一个独立的变量副本. 接口方法: protected T initialValue( ...

  2. Java Map按键(Key)排序和按值(Value)排序

    Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V ...

  3. Java Map 按Key排序和按Value排序

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

  4. 对象作为 map 的 key 时,需要重写 equals 方法和 hashCode 方法

    对象作为 map 的 key 时,需要重写 hashCode 和 equals方法 如果没有重写 hashCode 方法,那么下面的代码示例会输出 null 我们首先定义一个对象:BmapPoint, ...

  5. Java Map 按Key排序和按Value排序【转】【补】

    package kingtool.sort; import java.util.ArrayList; import java.util.Collections; import java.util.Co ...

  6. 【Java】对Map按key和value分别排序

    一.什么是Map? 在讲解Map排序之前,我们先来稍微了解下map. map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. ...

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

    转: 各种集合key,value能否为null 2019年03月12日 13:22:58 mingwulipo 阅读数 238   HashMap key,value都可以为null static f ...

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

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

  9. C++ map通过key获取value

    c++的map中通过key获取value的方法 一般是value  =map[key],或者另一种迭代器的方式 1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不 ...

随机推荐

  1. Less-css扩展指定多层嵌套选择器样式

    //扩展Extend Use Method:以在study上扩展指定多层嵌套选择器样式 //Share style .test{ font-size:18px; color:#ffffff; ul{ ...

  2. Android Download机制详解(一)DocumentUI部分

    在Android中Google为我们集成了一套十分便利的Download机制,用来下载网络上的资源文件.以此省去了我们编写和维护大量与Download相关的代码. 组成 Android中Downloa ...

  3. Android搜索控件的基本使用方法

    在Android中,搜索是一个非常核心的功能,我们可以通过它搜索到任意我们可以获得的信息.这些信息可以是存储在手机中的联系人.文件等信息,也可以是在网络上的资源. Android为了给用户提供良好的搜 ...

  4. 云计算之路-阿里云上:SLB会话保持的一个坑

    冒着被大家厌烦的风险,今天再发一篇“云计算之路-阿里云上”.这是在前一篇发过之后真实发生的事情,我们觉得定位问题的过程值得分享.而且估计园子里不少朋友被这个问题骚扰过,我们有责任让大家知道问题的真正原 ...

  5. mysqldump迁移说明

    使用mysqldump导出数据, 数据包含单行insert,带字段值 #使用mysqldump备份数据到文件, 主要在每个分片的主上面进行备份,确保数据是最新的. mysqldump -h192. - ...

  6. CentOS7防火墙firewalld

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disab ...

  7. tagName()方法详解

    1.该方法可以通过元素的标签名称来查找元素.这个方法搜索到的元素通常不止一个,所以一般建议结合使用findElements方法来使用: driver.findElement(By.xpath(&quo ...

  8. django_视图层/2.0路由层/虚拟环境

  9. UTF-8具体解释

    UTF-8是一种变长字节的编码方式.它以8位(1字节)为单位对Unicode进行编码. UTF-8理论上最多能够达到6字节长.但眼下全世界的字符仅仅须要4字节就能够表示完. UTF-8规定,对于某一字 ...

  10. leetcode -day 15 Distinct Subsequences

    1.  Distinct Subsequences  Given a string S and a string T, count the number of distinct subsequen ...