【发布时间】:2012-05-13 15:22:40
【问题描述】:
在 TreeMap 中 - 元素已排序
在 HashMap 中 - 元素未排序
那么,如果我考虑get、put 和remove 方法,我应该使用哪个映射来提高性能?
【问题讨论】:
-
参见 Javadoc。
HashMap被指定为 O(1):'基本操作(get 和 put)的恒定时间性能,假设散列函数将元素正确地分散在桶中'。TreeMap被指定为“保证containsKey、get、put和remove操作的 log(n) 时间成本。 -
在不知道您评估哪个选项更好的标准的情况下,不可能回答这个问题。显然,如果您需要排序集合,则只有
TreeMap可以。但你已经知道了。 -
接受的答案是
HashMap更快。但是LinkedHashMap(Java 8) 的 Javadocs 说它的迭代速度比HashMap快得多。所以 YMMV,取决于您的具体标准。除非您需要排序,否则绝对不要使用TreeMap,并使用LinkedHashMap来保留插入顺序。
标签: java performance map