回覆列表
-
1 # 混跡IT
-
2 # QSong908
使用預設實現未必滿足自己的業務場景,比如效能,資料結構。也不可控。如果時間精力允許,關鍵的演算法還是自己實現的好。
-
3 # 模稜JAVA
應用場景不同
【TreeMap繼承自SortedMap】它用來保持鍵的有序順序,也包含了很多排序的方法。
【HashMap】 是無序的,由Collections的sort方法進行排序。
-
4 # 三僡然
我們將首先討論HashMap,它是一個基於雜湊表的實現。它擴充套件了AbstractMap類並實現了Map介面。一個HashMap的工作原理上的原則雜湊。這個Map實現通常作為一個分段的雜湊表,但是當桶變得太大時,它們會被轉換為TreeNodes的節點,每個節點的結構與java.util.TreeMap中的結構類似。
原理1.TreeMap擴充套件了AbstractMap類並實現了NavigableMap介面。一個TreeMap中儲存有地圖的元素紅黑樹,這是一個自我平衡的二叉搜尋樹。
2.HashMap不保證元素在Map中的排列方式。
3.TreeMap中的專案會根據其自然順序進行排序。
4.HashMap是一個基於雜湊表的實現。在雜湊表中搜索元素的平均時間是O(1)。
5.一個TreeMap的在同一個自定義的幫助的元素進行排序的能力層次樹儲存其資料比較。
6.TreeMap為大多數操作提供了O(log(n))
一般實際工作中我們為了效能考慮會優先使用 hashmap
本人大廠程式設計師,專注網際網路技術。大家有問題可以加好友諮詢我哈。
sortmap每次新增資料的時候都會進行排序運算,在資料節點非常多的情況下,會嚴重影響系統性能。所以更多的用效能好的hashmap,需要排序的時候進行一次排序運算。在資料節點小或者對效能要求不高的情況下,sortmap也是一個不錯的選擇。