在Java中,为什么在某些集合实现中允许null而在其他集合中不允许?

时间:2012-09-24 20:49:25

标签: java collections

在Java中,通常,某些集合实现允许使用null元素,而某些集合实现则不允许。 它与垃圾收集有关吗?

1 个答案:

答案 0 :(得分:5)

从广义上讲,我认为基本上可以通过实现来决定null是否可以 集合的有效元素(“逻辑上”)。我真的怀疑它还有更多,尽管我被证明是错误的。

来自the documentation的相关位:

  

某些集合实现对元素有限制   他们可能包含。例如,某些实现禁止null   元素,有些元素的元素类型有限制。   尝试添加不合格的元素会引发未经检查的异常,   通常是NullPointerException或ClassCastException。试图   查询不合格元素的存在可能会抛出异常,或者   它可能只是返回虚假;一些实现将展示   以前的行为和一些将展示后者。更普遍,   尝试对完成的不合格元素进行操作   不会导致不合格的元素插入   集合可以抛出异常,也可以成功,可以选择   实施。此类例外标记为“可选”   此接口的规范。