1. 程式人生 > >java中集合的擴容

java中集合的擴容

map art 列表 eset ont 實現 ava 大小 ash

對於Java中的各種集合類,根據底層的具體實現,小結了一下大致有3種擴容的方式:

1、對於以散列表為底層數據結構實現的,(譬如hashset,hashmap,hashtable等),擴容方式為當鏈表數組的非空元素除以數組大小超過加載因子時,

鏈表數組長度變大(乘以2+1),然後進行重新散列。

2、對於以數組為底層數據結構實現的,譬如ArrayList,當數組滿了之後,數組長度變大(乘以3/2+1),然後將原數組中的數據復制到新數組中。

3、對於以鏈表結構實現的,譬如TreeSet,TreeMap,則是動態增加元素~~即每次加1即可。

java中集合的擴容