Firebase Performance of Hashmap versus TreeMap
本问题已经有最佳答案,请猛点这里访问。
在我的Android应用中,我使用Firebase数据库来存储数据。 我希望将一些值作为
检索我的数据以便在Android UI上显示时,我主要需要"按键排序"的数据。
我的问题是从性能角度来看我是否应该将Map声明为Hashmap或Treemap? 对于例如 喜欢
1 | Map<String, Integer> myData = new Hashmap<>(); |
要么
1 | Map<String, Integer> myData = new Treemap<>(); |
在上述两个选项中,这将为我提供更好的数据检索性能。 每个Map大小预计在0到10,000个条目的范围内。 对于每个用户,我的数据库中可能有5到11个这样的地图。
我的问题是专门针对了解Firebase的性能,而不是关于2种地图类型之间差异的一般性问题。
Hashmap和Treemap这两个类都实现了
-
HashMap 不保证迭代顺序,并且在添加/删除新元素时也可以完全改变。查找数组结构,基于hashCode(),equals()实现,O(1)运行时复杂性,用于插入和搜索,未排序。 -
TreeMap 将根据其compareTo() 方法根据包含键的natural ordering 进行迭代。这也可以通过外部比较器完成。它还实现了SortedMap接口。树结构,基于compareTo()实现,O(log(N))运行时复杂度用于插入和搜索,排序。
除非您需要订购,否则请使用