欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Map中的Null key, Null Value

程序员文章站 2022-05-09 18:53:23
...
ConcurrentHashMap的key和value都不能为null,否则抛NullPointerException
java.util.concurrent.ConcurrentHashMap.put(K, V)

    /**
     * Maps the specified key to the specified value in this table.
     * Neither the key nor the value can be null.
     *
     * <p> The value can be retrieved by calling the <tt>get</tt> method
     * with a key that is equal to the original key.
     *
     * @param key key with which the specified value is to be associated
     * @param value value to be associated with the specified key
     * @return the previous value associated with <tt>key</tt>, or
     *         <tt>null</tt> if there was no mapping for <tt>key</tt>
     * @throws NullPointerException if the specified key or value is null
     */
    public V put(K key, V value) {
        if (value == null)
            throw new NullPointerException();
        int hash = hash(key.hashCode());
        return segmentFor(hash).put(key, hash, value, false);
    }



hashMap和linkedhashMap都允许null key和null value,
treeMap不允许null key,但允许null value

http://www.trinea.cn/android/android-source-code-analysis/concurrenthashmap-nullpointerexception-null-key/