2

在 Java 中,一般来说,有些集合实现允许空元素,有些则不允许。它与垃圾收集有关吗?

4

1 回答 1

5

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

文档中的相关位:

一些集合实现对它们可能包含的元素有限制。例如,一些实现禁止空元素,而一些实现对其元素的类型有限制。尝试添加不合格的元素会引发未经检查的异常,通常是 NullPointerException 或 ClassCastException。尝试查询不合格元素的存在可能会引发异常,或者它可能只是返回 false;一些实现会表现出前一种行为,而另一些会表现出后者。更一般地,尝试对不合格元素执行操作,该不合格元素的完成不会导致将不合格元素插入集合中,这可能会引发异常,也可能会成功,这取决于实现的选择。此类例外被标记为“可选”

于 2012-09-24T21:04:39.643 回答