Java集合中未排序的Null键
请有人给我解释一下: 我很清楚为什么在Java排序的集合中禁止空键值 但是为什么HashTable、ConcurrentHashMap和。。。性质 它是否与线程安全有关 CopyOnWriteArrayList中是否允许/禁止空值?为什么? 多谢各位 但为什么哈希表中不允许它们呢 从: 要从哈希表中成功存储和检索对象 用作键的对象必须实现hashCode方法和equals方法 空引用对象的属性不可能获取该信息,因为该属性为空 CopyOnWriteArrayList中是否允许/禁止空值 从 java.util.ArrayList的线程安全变体,其中所有 通过创建新的 基础数组的副本 。。。。 迭代器本身的元素更改操作将被删除, 不支持设置、添加和添加。这些方法会导致 不支持操作异常 允许所有元素,包括nullJava集合中未排序的Null键,java,sortedset,sortedmap,Java,Sortedset,Sortedmap,请有人给我解释一下: 我很清楚为什么在Java排序的集合中禁止空键值 但是为什么HashTable、ConcurrentHashMap和。。。性质 它是否与线程安全有关 CopyOnWriteArrayList中是否允许/禁止空值?为什么? 多谢各位 但为什么哈希表中不允许它们呢 从: 要从哈希表中成功存储和检索对象 用作键的对象必须实现hashCode方法和equals方法 空引用对象的属性不可能获取该信息,因为该属性为空 CopyOnWriteArrayList中是否允许/禁止空值 从 ja
有时它有助于阅读文档:这里有两个问题。这两个问题都可以通过阅读文档来回答 1-为什么哈希表、ConcurrentHashMap和属性不能接收null作为键 哈希表: 要成功地从哈希表存储和检索对象,用作键的对象必须实现hashCode方法和equals方法 ConcurrentHashMap: 相反,由于映射中的键和值从不为null,因此null可作为当前缺少任何结果的可靠原子指示器 Properties类扩展了HashTable,因此您已经知道了原因 2-CopyOnWriteArrayList中是否允许/禁止空值?为什么? 允许所有元素,包括null
对此原因没有进一步解释,但我相信这是一个设计决定。因为值的存在与键的存在有关,否则,就没有必要使用HashMap的概念!这些文档直接回答了您的最后一个问题。一个重要原因是Java开发人员开始认为null在集合中是个坏主意:
public class CopyOnWriteArrayList<E>