在Java中,通常,一些集合实现允许null元素,而有些则不允许.它与垃圾收集有关吗?
从广义上讲,我认为基本上由实现决定是否null可以是集合的有效元素("逻辑上").我真的怀疑它有更多,虽然我可能被证明是错的.
文档中的相关位:
某些集合实现对它们可能包含的元素有限制.例如,某些实现禁止null元素,并且一些实现对其元素的类型有限制.尝试添加不合格的元素会引发未经检查的异常,通常是NullPointerException或ClassCastException.试图查询不合格元素的存在可能会引发异常,或者它可能只是返回false; 一些实现将展示前一种行为,一些将展示后者.更一般地,尝试对不合格的元素进行操作,其完成不会导致将不合格的元素插入到集合中,可以在实现的选择中抛出异常或者它可以成功.此类异常在此接口的规范中标记为"可选".