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。主要用於存入元素的時候對元素進行自動排序,迭代輸出的時候就按排序順序輸出