1

我了解 HashMap 的工作原理 - 碰撞和一切 - 试图了解更深层次的机制和入口桶的选择 - 而不是说 Array (使其成为二维矩阵)?由于搜索两者都是 O(n) 操作?我假设可能选择链接列表的一个因素是插入 o(1) 因素!这是一个正确的假设吗?

4

1 回答 1

1

如果它是在 Java 中,那么链表就是桶。并且表中的每个条目都是一个包含条目元素数组的链表。因为每个节点都知道列表旁边的内容,直到下一个引用为空时到达末尾。

还要检查:-

Java 的 Hashmap 在内部是如何工作的?

数组具有预定的大小。所以如果你使用一个数组,那么哈希表对每个数组元素都有一个预先确定的大小。每个可能的桶都被分配了,你的哈希表会变大。如果您有非常大的内存,这将是有意义的,但如果没有,则使用链接列表并遍历列表以查找匹配项。

于 2013-09-20T13:42:42.630 回答