【发布时间】:2017-05-17 12:40:09
【问题描述】:
所以我正在阅读有关 Java 集合 api 的信息,并且想知道 HashMap put() api,根据文档,它说它是一个恒定时间操作,但让我感到困惑的是,是否将重新散列作为时间复杂度计算的一部分考虑在内,或者不是。
ArrayListadd() api 在另一边清楚地说明了它的摊销 o(n) 即添加 n 个元素需要 n 时间,为什么它不适用于 HashMap put 那么呢?尽管HashMap 在达到负载因子时动态创建更大的存储桶,并将哈希重新应用于现有的整体以确定新的存储桶位置。
我们将非常感谢您对上述解释的任何帮助,如果需要将这些问题移至其他部分,请在否决之前告诉我。
谢谢。
【问题讨论】:
标签: java algorithm collections hashmap time-complexity