當前位置:成語大全網 - 新華字典 - Java中HashMap和TreeMap的區別深入理解

Java中HashMap和TreeMap的區別深入理解

HashMap:數組方式存儲key/value,線程非安全,允許null作為key和value,key不可以重復,value允許重復,不保證元素叠代順序是按照插入時的順序,key的hash值是先計算key的hashcode值,然後再進行計算,每次容量擴容會重新計算所以key的hash值,會消耗資源,要求key必須重寫equals和hashcode方法

默認初始容量16,加載因子0.75,擴容為舊容量乘2,查找元素快,如果key壹樣則比較value,如果value不壹樣,則按照鏈表結構存儲value,就是壹個key後面有多個value;

TreeMap:基於紅黑二叉樹的NavigableMap的實現,線程非安全,不允許null,key不可以重復,value允許重復,存入TreeMap的元素應當實現Comparable接口或者實現Comparator接口,會按照排序後的順序叠代元素,兩個相比較的key不得拋出classCastException。主要用於存入元素的時候對元素進行自動排序,叠代輸出的時候就按排序順序輸出