在HashMap
的实现中,链表用于表示存储桶中的元素。
每个条目都有一个元素到下一个条目。见:Ref。但是,在LinkedList
类的实现中,每个元素都有对其前一个元素的引用,其下一个元素请参见Ref。只是想弄清楚为什么previous
在一个链表中很重要而不是另一个?
答案 0 :(得分:2)
Entry
(HashMap
的内部类)不是通用链接列表的一部分(因为LinkedList
是)。它的唯一目的是在向前方向上迭代它以寻找元素。所以它不需要previous
引用。
答案 1 :(得分:1)
前一个引用使LinkedList成为双向List,这使得可以反向迭代List。
答案 2 :(得分:1)
严格地说,链接列表中不需要对前一个元素的引用。 java.util.LinkedList
实际上是一个双向链表。这是有效实施以下操作所必需的:
对于Map.Entry的链接列表,所述操作没有用。
请注意,虽然getLast()
是列表界面的LinkedList
加法,但所述界面还需要另外两个。
答案 3 :(得分:0)
LinkedList是一种通用实现。您可能想要向后迭代它。对于地图,在搜索存储区时,only
会向前迭代。由于不需要向后迭代,因此不会实现。