HashMap与TreeMap的Firebase性能
这个问题在这里已经有了答案:
这两个类,Hashmap和Treemap都实现了Map
接口。 两个类都提供了大部分相同的功能,但这些类之间最重要的区别在于通过条目进行迭代的顺序。
HashMap
没有提供关于迭代次序的保证,当新元素被添加/删除时,它也可以完全改变。 查找数组结构,基于hashCode(),equals()实现,O(1)插入和搜索的运行时复杂度,未排序。
TreeMap
将根据它的compareTo()
方法根据包含键的natural ordering
进行迭代。 这也可以通过外部比较器来完成。 它还实现SortedMap接口。 基于compareTo()实现的树结构,用于插入和搜索的O(log(N))运行时复杂度,排序。
除非你需要订购,否则使用HashMap
。 HashMap is faster!
。 但正如你所说,你大多数需要你的数据“按键排序”,只需使用TreeMap
。