Android Hashmap与TreeMap的Firebase性能

Android Hashmap与TreeMap的Firebase性能,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,在我的Android应用程序中,我使用Firebase数据库来存储数据。我想将一些值作为映射存储在Firebase数据库中 在检索数据以显示在Android UI上时,我主要需要“按键排序”的数据 我的问题是从性能的角度来看,我应该将映射声明为Hashmap还是Treemap?例如,像 Map<String, Integer> myData = new Hashmap<>(); Map myData=newhashmap(); 或 Map myData=newtree

在我的Android应用程序中,我使用Firebase数据库来存储数据。我想将一些值作为
映射存储在Firebase数据库中

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

我的问题是从性能的角度来看,我应该将映射声明为Hashmap还是Treemap?例如,像

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

Map myData=newtreemap();
在以上两个选项中,这将为我提供更好的数据检索性能。每个映射大小的范围应为0到10000个条目。在我的数据库中,每个用户可能有5-11张这样的地图

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

这两个类,并实现
贴图
接口。这两个类提供的功能基本相同,但这两个类之间最重要的区别在于通过条目进行迭代的顺序

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

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

除非您需要订购,否则请使用
HashMap
哈希映射更快。但正如您所说,您最需要的是“按键排序”的数据,只需使用
树形图

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