文章预览
mall学习教程官网: macrozheng.com 在 Java 中,Map 是属于 java.util 包下的一个接口(interface),所以说“为什么 Map 不能插入 null?”这个问题本身问的不严谨。Map 部分类关系图如下: 所以,这里面试官其实想问的是: 为什么 ConcurrentHashMap 不能插入 null? 1.HashMap和ConcurrentHashMap的区别 HashMap 和 ConcurrentHashMap 在对待 null 的态度上是不同的,在 Java 中,HashMap 是允许 key 和 value 值都为 null 的,如下代码所示: HashMap map = new HashMap(); map.put( null , null ); if (map.containsKey( null )) { System.out.println( "存在 null" ); } else { System.out.println( "不存在 null" ); } 以上程序的执行结果如下: 存在 null 从上述结果可以看出,HashMap 是允许 key 和 value 值都为 null 的。 但 ConcurrentHashMap 就不同了,它不但 key 不能为 null,而且 value 也不能为 null,如以下代码所示: C
………………………………