为什么我们可以为LinkedList DESPITE添加空值,强烈反对在Deque界面中这样做?

时间:2016-06-30 00:59:20

标签: java data-structures

来自Deque的Javadoc:

  

虽然严格要求Deque实现禁止插入null元素,但强烈建议他们这样做。强烈建议任何允许null元素的Deque实现的用户不要利用插入空值的能力。这是因为null被各种方法用作特殊的返回值,表明deque是空的。

我在现有问题中找不到答案:Why can we add null elements to a java LinkedList?

1 个答案:

答案 0 :(得分:3)

允许这样的规定使程序员的生活更轻松。我可以想一个例子。

假设有一个房屋的链接列表,并且postMan按顺序向每个房屋发送信件。 linkedList中的每个节点都存在。房屋有家庭对象作为其价值。 在某些情况下,家庭可能不在那里,那么家庭对象将具有空值。

但是对于邮递员来说,这是不相关的,因为他仍然必须访问该节点。 PostOffice建议所有家庭如果他们要离开房子就指示邮局,以便postMan不需要访问那所房子(如果可能的话)。

但出于某些目的,房主决定不告知postOffice这种情况,并希望继续接收信件(间接邮寄访问)。