【发布时间】:2019-06-12 12:52:22
【问题描述】:
我正在尝试处理HashMap、LinkedHashMap 和TreeMap 的渐近复杂性。在不同的网站和文章上平均写到get = O(1),最糟糕的是 - O(n)。 (如果所有键都添加到一个桶中)。
但是我看书Bruce Eckel thinking in java有一个比较的例子
如果您查看此数据,则它会输出O(n)
我完全糊涂了。谁能解释Map 实现的渐近复杂性-HashMap、LinkedHashMap 和TreeMap,至少对于get 和put? (也许有一篇好文章,把所有的东西都说清楚并放在一起?)
编辑
对put 方法最感兴趣。因为当某个大小出现时resize() 与ArrayList 类似。
【问题讨论】:
-
老实说,我不知道这些没有任何单位的数字应该告诉我什么。它们甚至看起来都不一致。此外,
HashMap和TreeMap具有根本不同的时间复杂度,因此一次性要求它们是没有意义的。
标签: java algorithm collections hashmap time-complexity