我们是否需要链表中的前一个元素?

时间:2013-03-29 11:56:11

标签: java collections linked-list hashmap

HashMap的实现中,链表用于表示存储桶中的元素。 每个条目都有一个元素到下一个条目。见:Ref。但是,在LinkedList类的实现中,每个元素都有对其前一个元素的引用,其下一个元素请参见Ref。只是想弄清楚为什么previous在一个链表中很重要而不是另一个?

4 个答案:

答案 0 :(得分:2)

EntryHashMap的内部类)不是通用链接列表的一部分(因为LinkedList是)。它的唯一目的是在向前方向上迭代它以寻找元素。所以它不需要previous引用。

答案 1 :(得分:1)

前一个引用使LinkedList成为双向List,这使得可以反向迭代List。

答案 2 :(得分:1)

严格地说,链接列表中不需要对前一个元素的引用。 java.util.LinkedList实际上是一个双向链表。这是有效实施以下操作所必需的:

对于Map.Entry的链接列表,所述操作没有用。

请注意,虽然getLast()是列表界面的LinkedList加法,但所述界面还需要另外两个。

答案 3 :(得分:0)

LinkedList是一种通用实现。您可能想要向后迭代它。对于地图,在搜索存储区时,only会向前迭代。由于不需要向后迭代,因此不会实现。