谁在Java中更快的hashmap.get或treemap.get
这个问题在这里已经有了答案:
TreeMap
是Map
接口的二叉查找树实现。 因此,任何查找操作都需要O(logN)
时间。
另一方面, HashMap
使用密钥的hashCode()
在定时中定位包含密钥的bin。 由于每个bin都有一个期望数量的条目,这些条目由一个小常量绑定,所以查找需要O(1)
次,这比O(logN)
快。
就像HashMap
put / get
方法使用hashCode()
和equals()
方法一样简单,而TreeMap
使用一些使用Comparable or Comparator
比较机制。
还有一点,
HashMap
更省时。 TreeMap
更加节省空间。