如何决定使用 HashMap 还是 TreeMap?(已更新)
答:
区别
TreeMap
-
TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;
-
TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。
HashMap
-
HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;
-
数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。
结论
-
如果你需要得到一个有序的结果,就应该使用TreeMap(因为HashMap中元素的排列顺序是不固定的)。
-
不需要排序就使用HashMap(HashMap有更好的性能)。