谁是java中更快的hashmap.get或treemap.get

时间:2017-12-19 09:38:09

标签: java collections

在某处我读到HashMap.get(object)的速度比TreeMap.get(object)快。但我的问题是为什么他更快,即使在检索object时两者都会使用散列函数。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

很简单,HashMap put / get方法使用hashCode()equals()方法,而TreeMap使用Comparable or Comparator使用某种比较机制

还有一点,

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