java中谁更快hashmap.get或treemap.get [重复]
Posted
技术标签:
【中文标题】java中谁更快hashmap.get或treemap.get [重复]【英文标题】:who is faster hashmap.get or treemap.get in java [duplicate] 【发布时间】:2018-06-01 17:00:51 【问题描述】:在某处我读到HashMap.get(object)
比TreeMap.get(object)
快。但我的问题是为什么他在检索object
时甚至都可以处理散列函数的速度更快。
【问题讨论】:
TreeMap
不使用散列。
或许看看:***.com/questions/7057430/treemap-or-hashmap-faster
【参考方案1】:
TreeMap
是Map
接口的二叉搜索树实现。因此任何查找操作都需要O(logN)
时间。
另一方面,HashMap
使用密钥的hashCode()
在恒定时间内定位包含密钥的 bin。由于每个 bin 都有一个由一个小常数限制的预期条目数,因此查找需要 O(1)
时间,这比 O(logN)
快。
【讨论】:
【参考方案2】:就像HashMap
put / get
方法使用hashCode()
和equals()
方法一样简单,而TreeMap
使用Comparable or Comparator
的一些比较机制。
还有一点,
HashMap
更省时。 TreeMap
更节省空间。
【讨论】:
以上是关于java中谁更快hashmap.get或treemap.get [重复]的主要内容,如果未能解决你的问题,请参考以下文章