TreeMap中的元素已排序,因此我认为get(...)containsKey(...)使用二进制搜索。这些方法是否比HashMap中实现的方法快,并且它们确实使用二进制搜索吗?

最佳答案

Not binary search but the complexity must be O(logn)


  此实现为containsKey,get,put和remove操作提供了保证的log(n)时间成本。算法是对Cormen,Leiserson和Rivest的算法介绍中的算法的改编。


注意,它实际上是一棵红黑树:


  基于红黑树的NavigableMap实现


但是请注意,尽管我总是讨厌将哈希表盲目地视为O(1)数据结构,但出于几乎所有实际目的,HashMap都是O(1),除非:例如,您选择了非常糟糕的哈希函数或对地图进行了大规模重载。

10-08 13:32