HashMap和TreeMap有什么区别?

这个问题在这里已经有了答案:

  • HashMap,LinkedHashMap和TreeMap之间的区别16个答案

  • TreeMap是一个SortedMap的例子,这意味着键的顺序可以被排序,并且当遍历键时,你可以期望它们按顺序排列。

    另一方面, HashMap没有这样的保证。 因此,在迭代HashMap的键时,不能确定它们将以什么顺序。

    一般来说, HashMap效率会更高,所以只要你不关心密钥的顺序就可以使用它。


    HashMap由Hash Table实现, TreeMapRed-Black treeHashMapTreeMap之间的主要区别实际上反映了HashBinary Tree之间的主要区别,即迭代时,TreeMap保证可以通过元素的compareTo()方法或TreeMap构造函数中设置的比较器来确定键顺序。

    看看下面的图表。

    在这里输入图像描述


    总结一下:

  • HashMap:基于hashCode(),equals()实现的查找数组结构,O(1)用于插入和搜索的运行时复杂性,未分类
  • TreeMap:基于compareTo()实现的树结构,用于插入和搜索的O(log(N))运行时复杂度,排序
  • 取自:HashMap与TreeMap

    链接地址: http://www.djcxy.com/p/92167.html

    上一篇: What is the difference between a HashMap and a TreeMap?

    下一篇: does it always release the lock?