ArrayList,HashMap,LinkedList 初始化大小和 擴容機制

DoIt發表於2018-03-27

1.ArrayList

ArrayList 初始化大小是 10 (如果你知道你的arrayList 會達到多少容量,可以在初始化的時候就指定,能節省擴容的效能開支)
擴容點規則是,新增的時候發現容量不夠用了,就去擴容
擴容大小規則是,擴容後的大小= 原始大小+原始大小/2 + 1。(例如:原始大小是 10 ,擴容後的大小就是 10 + 5+1 = 16)

2.linkedList

linkedList 是一個雙向連結串列,沒有初始化大小,也沒有擴容的機制,就是一直在前面或者後面新增就好。
對於雙向連結串列的理解
這裡寫圖片描述

3.HashMap

HashMap 初始化大小是 16 ,擴容因子預設0.75(可以指定初始化大小,和擴容因子)
擴容機制.(當前大小 和 當前容量 的比例超過了 擴容因子,就會擴容,擴容後大小為 一倍。例如:初始大小為 16 ,擴容因子 0.75 ,當容量為12的時候,比例已經是0.75 。觸發擴容,擴容後的大小為 32.)

相關文章