Map容器的Key、Value是否可以为null问题

Map接口下实现的几个常用类:

HashMap、TreeMap、ConcurrentHashMap、Hashtable

这几个类均有put()方法,可以给这些容器中添加元素对象;但是,key和value是否可以为空呢?

Map容器的Key、Value是否可以为null问题_第1张图片
这个图说明HashMap的key和value都允许为null;而Hashtabe、ConcurrentHashMap是都不允许的,TreeMap允许value为null;现在我们通过IDEA查看他们的源代码有何不同;
1.首先是HashMap:

下面是源码部分:

public V put(K key, V value) {
   
        return putVal(hash(key), key, value, false, true);
    }
value处。
static final int hash(Object key) {
   
        int h;
        return (key == null) ? 

你可能感兴趣的:(学习,java,hashmap)