【问题标题】:who is faster hashmap.get or treemap.get in java [duplicate]java中谁更快hashmap.get或treemap.get [重复]
【发布时间】:2018-06-01 17:00:51
【问题描述】:

在某处我读到HashMap.get(object)TreeMap.get(object) 快。但我的问题是为什么他在检索object 时甚至都可以处理散列函数的速度更快。

【问题讨论】:

标签: java collections


【解决方案1】:

TreeMapMap 接口的二叉搜索树实现。因此任何查找操作都需要O(logN) 时间。

另一方面,HashMap 使用密钥的hashCode() 在恒定时间内定位包含密钥的 bin。由于每个 bin 都有一个由一个小常数限制的预期条目数,因此查找需要 O(1) 时间,这比 O(logN) 快。

【讨论】:

    【解决方案2】:

    就像HashMap put / get 方法使用hashCode()equals() 方法一样简单,而TreeMap 使用Comparable or Comparator 的一些比较机制。

    还有一点,

    HashMap 更省时。 TreeMap 更节省空间。

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2013-10-01
      • 2010-10-19
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      相关资源
      最近更新 更多