关于集合:java中的hashmap.get或treemap.get更快

who is faster hashmap.get or treemap.get in java

本问题已经有最佳答案,请猛点这里访问。

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


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

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


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

还有一点,

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