我查看了poll()和unlinkFirst()在LinkedList中的代码,并且我似乎找不到如果LinkedList中有一个null项,它是如何防止返回null的。
poll()是在接口Queue中定义的,只有当Queue为空时才返回null。LinkedList违反了关于队列不包含null元素的建议,因为这将阻止poll()正常工作-但是如果节点包含空元素,则无法看到poll()的任何替代返回值。
我认为这样一个被广泛使用的类会删除poll()方法,或者以某种方式解释这个错误点。
我是不是遗漏了什么?
发布于 2014-06-27 02:11:40
poll()在接口Queue中定义为只有当队列为空时才返回null。
不不是。“检索并移除此队列的头,如果此队列为空,则返回null。”这里没有“唯一”。
LinkedList违反了关于Queues不包含空元素的建议
没有这样的建议,也没有违反。有一条语句说,“即使在允许使用null的实现中,也不应该将null插入到队列中”,但这是针对用户程序员的,而不是针对实现的。
https://stackoverflow.com/questions/24442772
复制相似问题