java - 为什么 ArrayDeque 中不允许空值?

标签 java

我知道 Hashtable 不允许空值,因为它是遗留的,由 HashMap 修复。树中不允许为空,因为排序会成为一个问题。但是为什么在 ArrayDeque 中不允许使用 null?

最佳答案

来自 Deque 的 Javadoc:

While Deque implementations are not strictly required to prohibit the insertion of null elements, they are strongly encouraged to do so. Users of any Deque implementations that do allow null elements are strongly encouraged not to take advantage of the ability to insert nulls. This is so because null is used as a special return value by various methods to indicated that the deque is empty.

ArrayDeque 实现还使用 null 来指示空元素(如 sestus' 和 Aman jangra 的回答),所以推理有两层:契约(Contract)实现细节

值得注意的是,ArrayDeque 可以轻松支持 null 元素,而无需太多额外的复杂性,因此更有说服力的原因似乎是 Deque< 的建议 接口(interface)。

关于java - 为什么 ArrayDeque 中不允许空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851512/

相关文章:

java - 将对象转换为数组 - IllegalArgumentException - 参数不是数组

java - 相对定位和绝对坐标?

java - 如何在java中检查字符串变量是否包含负值

java - 如何使用 pdfbox 将 unicode 文本写入 pdf?

java - 尝试资源的 8 个分支 - 可以进行 jacoco 覆盖吗?

java - 如何通过annotations/pom.xml管理maven配置文件?

java - 序列输入流比文件输入流快吗

java - Ant build.xml 中的 Groovy(带有 Java 类)

java - 我正在从数组列表中获取内存地址,需要信息

java - SSTable 加载器流式传输失败,出现 java.io.IOException : Connection reset by peer