2013-10-31 46 views
3

我有一些数据将按照排序顺序进入(首先按排序顺序排列整组键,然后以随机顺序重复)。所以,我可以同时使用LinkedHashMap或者TreeMap来保存排序(对吧?)。我的问题是,他们哪一个更快,哪个更节省空间?LinkedHashMap和TreeMap哪个更快?

+1

LinkedHashMap会更好,我认为。原因是你的订单插入顺序是正确的顺序,另一方面树图(红黑树)成本o(lgn)to reblance – farmer1992

+0

@Andrew Barber:但问题是如此直接..我应该使用哪种数据结构?我会缩小范围以加速成为唯一的标准。这会有帮助吗? –

+2

有文档说明LinkedHashMap是O(1)用于插入和检索,其中TeeMap是O(log(N))。 – EJP

回答

1

LinkedHashMap插入速度更快,因为在插入像TreeMap时不必进行不必要的比较,正如@EJP所述。由于LinkedHashMap只需要一个前一个键和一个下一个键的链接,而TreeMap需要一个链接到父节点和1个链接到子节点,我认为TreeMap也会占用更大的内存。

所以我的投票是LinkedHashMap。内存少,时间少,当然CPU也少。