【发布时间】:2013-11-13 08:59:51
【问题描述】:
我读到 HashMap 有以下实现:
main array
↓
[Entry] → Entry → Entry ← linked-list implementation
[Entry]
[Entry] → Entry
[Entry]
[null ]
所以,它有一个 Entry 对象数组。
问题:
我想知道这个数组的索引如何在 hashCode 相同但对象不同的情况下存储多个 Entry 对象。
这与
LinkedHashMap的实现有何不同?它是 map 的双向链表实现,但它是否像上面一样维护一个数组,它如何存储指向下一个和前一个元素的指针?
【问题讨论】:
-
只是一个猜测,但在每个 key->value 对内部,该值存储指向其他条目的下一个和上一个指针以保持插入顺序,这保留了顺序并仍然允许恒定时间删除插入和检索
-
好的。我只是这么想。那么,数组中的每个
Entry对象都有指向下一个和上一个Entry 对象的链接? -
我正在添加一个答案以更好地解释它
标签: java hashmap linkedhashmap