我正在查看poll()
中unlinkFirst()
和LinkedList
的代码,如果有null
,我似乎无法找到如何防止返回null } LinkedList
中的项目。
poll()
在接口Queue
中定义,仅当Queue
为空时才返回null。 LinkedList
违反了队列中不包含null
元素的建议,因为这会阻止poll()
正常工作 - 但如果poll()
我无法看到poll()
的任何备用返回值node包含null元素。
我原以为像这样广泛使用的类会删除{{1}}方法,或以某种方式解释此错误点。
我错过了什么吗?
答案 0 :(得分:1)
poll()
在接口Queue
中定义,仅当队列为空时才返回null
不,不是。 "检索并删除此队列的头部,如果此队列为空,则返回null。"。没有"只有"那里。
LinkedList
违反了Queues
不包含空元素的建议
没有此类建议,也没有违规行为。有一个声明"即使在允许它的实现中,也不应该将null插入到队列中,而是将其写入用户程序员,而不是实现。