什么是TreeMap和HashMap中get()方法的运行时性能,大小为n

mac*_*ers 3 java big-o hashmap map treemap

最近一个面试问题让我感到不确定.

对于TreeMap和HashMap中的get()方法,它的性能是什么?

a)平均值:常数(与n无关)最差:常数(与n无关)

b)平均值:常数(与n无关)最差:与log(n)成比例

c)平均值:常数(与n无关)最差:与(n)成比例

d)平均值:与log(n)成比例最差:与(n)成比例

哪个是对的?

Nis*_*hth 8

HashMap

假设散列函数在桶之间正确地分散元素,该实现为基本操作(get和put)提供了恒定时间性能.

但请注意,修改加载因子(默认值= 0.75)可能会对某些操作的成本产生一些影响HashMap.

作为一般规则,默认加载因子(.75)在时间和空间成本之间提供了良好的权衡.较高的值会减少空间开销,但会增加查找成本(反映在HashMap类的大多数操作中,包括get和put).

可以使用其中一个重载构造函数强制执行不同的加载因子值.

TreeMap

此实现为containsKey,get,put和remove操作提供有保证的log(n)时间成本.