正如我所提到的LinkedHashMap的文档,它说,内部维护双链表(DLL)
我试图理解为什么选择DLL而不是S(ingle)LL我用DLL获得的最大优势是向后遍历,但我没有看到LinkedHashMap()利用这个优势的任何用例,因为之前没有( )Iterable接口中的next()类操作.
任何人都可以解释为什么是DLL,而不是SLL?
这是因为使用额外的哈希映射,您可以在O(1)中实现删除.如果您使用单链表,删除将采用O(n).
考虑用于存储键值对的哈希映射,以及具有指向链表中的节点的键的另一内部哈希映射.删除时,如果它是双向链表,我可以轻松地到达前一个元素并使其指向以下元素.单链表无法做到这一点.
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |