hashmap 在 put 时,新链表节点是放在头部还是尾部
时间: 2023-09-18 18:01:47 浏览: 288
HashMap与ConcurrentHashMap面试要点.pdf
HashMap的实现是基于哈希表(Hash Table)的数据结构。在使用HashMap的put方法插入新节点时,新节点的插入位置是在链表的头部。
当我们向HashMap中插入新的键值对时,首先会根据键的哈希值计算出数组的索引位置。如果该索引位置已经存在链表节点,则需要进行链表的遍历,直到找到链表的尾部节点。然后在链表的尾部插入新的节点,将插入的节点设置为链表的尾部。
但是,如果链表是空的,也就是该索引位置没有任何元素和节点。那么新节点将会被直接插入到链表的头部,成为新的头节点。其原因是,当链表为空时,无需遍历链表,直接将新节点插入到头部,省去了多余的操作。
采用将新节点插入到链表的头部的方式,是因为在哈希表中,链表的顺序并不重要。HashMap的put操作主要考虑的是时间复杂度的最优化,因此选择了在链表的头部进行插入,这样可以保证对于任何输入,都能够在较短的时间内找到并插入到正确的位置。
总的来说,HashMap在put操作时,新链表节点会被放在链表头部。这样操作的好处是,无论链表是否为空,都可以在常数时间内完成插入操作,提高了插入的效率。
阅读全文