jdk7和jdk8中hashMap實現的區別

  • jdk7:採用的是位桶(數組)+鏈表的方式,即咱們常說的散列鏈表的方式。節點的實現類時Entry類
  • jdk8:採用的是位桶+鏈表 / 紅黑樹的方式.當某個位桶的鏈表的長度 >8 的時候,這個鏈表就將轉換成紅黑樹。節點的實現類時Node類
  • hash值的計算不同

補充:

爲何會採用紅黑樹? 當採用鏈表時,若是成千上萬個節點產生hash衝突,那麼查找的時間複雜度退化爲O(n),而採用紅黑樹就會把查找時間複雜度降到O(logn)。數組

相關文章
相關標籤/搜索