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/
分享到:
相关推荐
本篇将详细介绍如何在嵌套的Map和List中获取key和value值。 首先,让我们理解什么是嵌套的Map。一个Map是一个键值对的集合,其中每个键都是唯一的,并且关联着一个值。当一个Map的值本身又是一个Map时,我们就说这...
NULL 博文链接:https://zzcjobstudy.iteye.com/blog/2066185
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...
然而,有时我们需要对Map中的值进行排序,例如按照value的大小进行升序或降序排列。这篇博客"对map里面的value进行排序"探讨的就是如何实现这一需求。 首先,我们了解Map接口的基本概念。Map接口不直接支持排序,...
在 Java 编程语言中,`Map` 是一种非常常见的数据结构,它通过键值对的形式存储数据,其中键(Key)是唯一的,而值(Value)可以有多个相同的实例。在实际开发过程中,我们经常会遇到需要根据值(Value)来查找其...
* put(key, value) 向MAP中增加元素(key, value) * remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回NULL * element(index) 获取指定索引的元素...
ConcurrentMap.putIfAbsent(key, value) 是一种 atomic 操作,用于在并发环境下安全地将键值对添加到 Map 中。这个方法主要是为了解决 put-if-absent 操作中的 race condition 问题。在单线程环境下,使用 if-else ...
哈希映射(HashMap)是Java编程语言中一个非常重要的数据结构,它在《简单的key value hashmap》中被提及,通常用于存储键值对(key-value pairs)。HashMap是Java集合框架的一部分,它提供了高效的查找、插入和删除...
* put(key, value) 向MAP中增加元素(key, value) * remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回NULL * element(index) 获取指定索引的...
标题中的“Map是一种键值对(key-value)数据结构”揭示了Map在计算机科学和编程中的核心概念。Map,也常被称为哈希表或字典,是数据结构中的一种重要类型,它允许我们通过键(key)来快速查找、添加和删除对应的值...
Java Map按键排序和按值排序是Java编程语言中常用的数据结构之一。Map是一种键值对的集合,它可以按照键或值进行排序。下面,我们将详细地介绍Java Map的按键排序和按值排序。 按键排序(sort by key) Java中的...
- `put(key, value)`:向Map中添加或更新键值对。 - `remove(key)`:移除指定键的元素,并返回操作结果。 - `get(key)`:获取指定键对应的值。 - `element(index)`:获取指定索引处的元素。 - `containsKey(key)`:...
- **Map**:键(`key`)最多只能包含一个`null`元素,而值(`value`)则可以包含任意数量的`null`元素。 - **数组**:基本类型数组,如果定义后没有显式地赋初值,则Java会自动给它们赋值;对于引用类型数组,如果没有...
在本例中,JSON的key将作为ListView的标题项,value则作为标题对应的详细内容。 1. **解析JSON数据**:首先,你需要使用Android的内置库`org.json`或第三方库如Gson、Jackson来解析JSON。例如,如果你的JSON数据是...
Object value2 = map2.get(key); if (value2 == null || !value1.toString().equals(value2.toString())) { return false; } } return true; } } ``` 在这个源码中,`equals()`方法接收两个Map对象作为参数...
Map提供了key到value的映射,一个Map中不能包含相同的key,每个key只能映射一个value。HashMap是一个非同步的Map实现类,它允许null,即null value和null key。 Hashtable和HashMap的区别在于,Hashtable是一个同步...
在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(key-value pairs)的存储方式。Map不是列表或数组,而是允许我们通过一个键(key)来查找对应的值(value)。本篇文章将深入讲解Map的使用实例...
- `put(K key, V value)`: 将指定的键值对放入Map中,如果键已经存在,则替换旧值。 - `get(Object key)`: 返回与指定键关联的值,如果不存在则返回null。 - `containsKey(Object key)`: 检查Map是否包含指定的键。 ...
Integer value = map.getOrDefault(key, defaultValue); ``` 2. `V putIfAbsent(K key, V value)`:这个方法用于插入一个键值对,但如果key已经存在,则不会覆盖原有值。这在并发编程中特别有用,可以避免多个线程...
- 使用`insert`函数插入:`my_Map.insert(map, int>::value_type(2, 2));`或`my_Map.insert(pair, int>(3, 3));`,还可以使用`make_pair`简化写法:`my_Map.insert(make_pair, int>("key", 4));` 4. **查找和修改...