2014-06-27 18 views
0

我在看代码poll()unlinkFirst() in LinkedList,我似乎无法找到如何防止返回null是LinkedList中的null项目。nodeList中的null元素的LinkedList poll()与空列表中的LinkedList poll()

poll()在接口Queue中定义,仅当Queue为空时返回空值。 LinkedList违反了队列中不包含null元素的建议,因为这会阻止poll()正常工作 - 但如果节点包含空元素,我看不到poll()的任何备用返回值。

我原以为这样一个广泛使用的类会删除poll()方法,或者以某种方式解决这个错误点。

我错过了什么吗?

回答

1

poll()在接口Queue定义为null只返回如果队列为空

不,它不是。 “检索并删除此队列的头部,或者如果此队列为空,则返回null。”那里没有“唯一”。

LinkedList违反了Queues不包含null元素

有没有这样的建议,并没有违规的建议。有一种说法是“即使在允许它的实现中,null也不应该插入队列中”,但这是给用户程序员的,而不是实现的。