Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我了解 HashMap 的工作原理 - 碰撞和一切 - 试图了解更深层次的机制和入口桶的选择 - 而不是说 Array (使其成为二维矩阵)?由于搜索两者都是 O(n) 操作?我假设可能选择链接列表的一个因素是插入 o(1) 因素!这是一个正确的假设吗?
如果它是在 Java 中,那么链表就是桶。并且表中的每个条目都是一个包含条目元素数组的链表。因为每个节点都知道列表旁边的内容,直到下一个引用为空时到达末尾。
还要检查:-
Java 的 Hashmap 在内部是如何工作的?
数组具有预定的大小。所以如果你使用一个数组,那么哈希表对每个数组元素都有一个预先确定的大小。每个可能的桶都被分配了,你的哈希表会变大。如果您有非常大的内存,这将是有意义的,但如果没有,则使用链接列表并遍历列表以查找匹配项。