Java Hashmap尾部遍历

Dha*_*nan 9 java linked-list hashmap

尾部遍历在Java Hashmap中意味着什么?Java反转具有多个元素的(链表)存储桶.进行反转是为了避免Tail Traversing并向头部添加元素.我无法理解这个概念.

小智 22

我来到这个博客寻找关于尾部遍历的答案,现在我有一个顿悟

Dhananjayan,这基本上意味着尾部遍历是链表中的概念.我将尝试用一个例子来解释这一点.假设您要将以下元素添加到单个链接列表中

23,65,44,12,90

好的,现在好了.你添加了5个元素.所以一段时间后,你需要添加一个新元素10.因此,如果我们的算法将元素添加到链表的末尾,它必须遍历thece五个元素以找到尾部,如果冗长的链表,这可能相当昂贵.因此,一种有效的方法是将新元素添加到head而不是tail,并将head指针更改为指向new head.so在这种情况下,当您添加新元素10时,链接列表将如下所示

10,23,65,44,12,90

如您所见,这是一种非常有效的方法.

我现在回答你的第二个问题(它们是什么意思通过反转?)所以在hashmap中,当它们调整大小/重新散列时,它们从头开始从链接列表中提取元素并创建一个新的链表并按顺序添加后续元素.迭代结果将是

  • 10
  • 23 10
  • 65 23 10
  • 44 65 23 10
  • 12 44 65 23 10

  • 90 12 44 65 23 10

所以这是向头部添加新元素的结果简而言之,这是一个LIFO(后进先出)结构.

菲利普