hashmap和陣列哪個速度快
阿新 • • 發佈:2019-01-23
Chasel_s 最近去面試遇到了面試官問的很多問題,很多東西可能之後真正被人問過之後才會發現自己學了假的知識,
答對的就不說了,今天栽在java的資料結構上了,面試官今天問了我一個問題,陣列和hashmap誰的效率快,為什麼?
言歸正傳下面來解釋。
很多時候面試一般會問hashmap和hashtable的速度誰快,這個一般面試java的人都會答上來,hashmap犧牲了
執行緒安全提高了效率,hashtable犧牲了效率換來了執行緒安全,之前還有一個面試官問了我一個問題,hashmap為什麼
執行緒不安全,其實我是看過hashmap的原始碼的,我就給他解釋原始碼,你們知道的之中解釋是不在點上的,後來我回來
思考了一下發現回答其實很簡單hashmap底層維護了一個數組,當多執行緒的時候對這個陣列操作是不安全的。
下面就說說陣列和hashmap誰的速度快,這其實是個坑,我其實當時回答其實對了一半,我說hashmap比陣列快,
因為hashmap底層是使用一個連結串列實現的,所以速度快,很多時候我都是這麼的只知其一不知其二,其實這種回答不全,
沒錯是快但是是在插入和刪除的時候,在查詢的時候因為陣列有下標所以在查詢集合中某個元素時,一般都會對陣列幹拜
下風。
Chasel_s對資料結構真的不是很懂,因為Chasel_s大學裡面數據結構是在大一開的,那是還是菜鳥一枚,根本就沒有
學會資料結構,看來以後要花一點時間補補。歡迎大佬們補充和指出問題。