Hashmap与TreeMap的Firebase性能

时间:2017-11-17 19:33:38

标签: android firebase firebase-realtime-database

在我的Android应用中,我使用Firebase数据库来存储数据。我希望将一些值作为Map<String, Integer>存储在Firebase数据库中。

检索我的数据以便在Android UI上显示时,我主要需要“按键排序”的数据。

我的问题是从性能角度来看我是否应该将Map声明为Hashmap或Treemap?对于例如像

Map<String, Integer> myData = new Hashmap<>();

Map<String, Integer> myData = new Treemap<>();

在上述两个选项中,这将为我提供更好的数据检索性能。每个Map大小预计在0到10,000个条目的范围内。对于每个用户,我的数据库中可能有5到11个这样的地图。

我的问题是专门针对了解Firebase的性能而不是关于两种地图类型之间差异的一般性问题。

1 个答案:

答案 0 :(得分:1)

这两个类HashmapTreemap都实现了Map接口。这两个类提供的功能大多相同,但这些类之间最重要的区别在于迭代条目的顺序。

  • HashMap不保证迭代顺序,并且在添加/删除新元素时也可以完全更改。查找数组结构,基于hashCode(),equals()实现,O(1)运行时复杂性,用于插入和搜索,未排序。

  • TreeMap将根据其natural ordering方法根据包含键的compareTo()进行迭代。这也可以通过外部比较器完成。它还实现了SortedMap接口。树结构,基于compareTo()实现,O(log(N))运行时复杂度的插入和搜索,排序。

除非您需要订购,否则请使用HashMap。的 HashMap is faster! 即可。但正如你所说,你主要需要你的数据&#34;按键&#34;排序,只需使用TreeMap