區別:1,hashmap是無序的,treemap是有序的,整個key是按照自然順序來的。2,hashmap可以put乙個null當key ,treemap卻不支援。3,底層結構不一樣,乙個是陣列➕紅黑樹,乙個直接就是紅黑樹。
但是hashmap是最最最常用的map集合,不考慮順序的時候,他是首選,假如你希望有點順序的話,想使用一下treemap,但是整個treemap和整個hashmap的效率到底差別多少,不太確定,萬一整個treemap效率很低,那就影響程式效能了,那就不好了。測試一下,有個底。
簡單的測試**:
@test
public void test1()
@test
public void test()
}private void treemap(mapmap) );
}private void hashmap(mapmap) );
}
測試結果:略,第乙個測試put null key的時候,直接npe。主要看效率圖。
看起來差別貌似不太大。真要深究的話,hashmap比treemap的putall的效率是3:1,因為要拍個序,應該可以接受吧。
TreeMap和HashMap的問題
在一次面試的過程中,有乙個問題 hashmap存放資料是無序的,如何編寫程式,使資料先進先出。當時我沒做出來,但是我回來折騰了半天,就寫了下面的成序。首先思考hashmap通過hashcode對其內容進行快速查詢,而treemap中所有的元素都保持著某種固定的順序,然後在google下,通過改變ke...
HashMap 和 TreeMap 的內部結構
1 基於雜湊表的 map 介面的實現。此實現提供所有可選的對映操作,並允許使用 null 值和 null 鍵。除了非同步和允許使用 null 之外,hashmap 類與 hashtable 大致相同。此類不保證對映的順序,特別是它不保證該順序恆久不變。2 hashmap 的例項有兩個引數影響其效能 ...
HashMap和TreeMap的內部結構
1 基於雜湊表的 map 介面的實現。此實現提供所有可選的對映操作,並允許使用 null 值和 null 鍵。除了非同步和允許使用 null 之外,hashmap 類與 hashtable 大致相同。此類不保證對映的順序,特別是它不保證該順序恆久不變。2 hashmap 的例項有兩個引數影響其效能 ...