java list负载_java集合的扩容和负载因子的总结
List 元素是有序的、可重復(fù)
ArrayList、Vector默認(rèn)初始容量為10
Vector:線程安全,但速度慢
底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組結(jié)構(gòu)
加載因子為1:即當(dāng) 元素個(gè)數(shù) 超過 容量長度 時(shí),進(jìn)行擴(kuò)容
擴(kuò)容增量:原容量的 1倍
如 Vector的容量為10,一次擴(kuò)容后是容量為20
ArrayList:線程不安全,查詢速度快
底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組結(jié)構(gòu)
擴(kuò)容增量:原容量的 0.5倍+1
如 ArrayList的容量為10,一次擴(kuò)容后是容量為15
Set(集) 元素?zé)o序的、不可重復(fù)。
HashSet:線程不安全,存取速度快
底層實(shí)現(xiàn)是一個(gè)HashMap(保存數(shù)據(jù)),實(shí)現(xiàn)Set接口
默認(rèn)初始容量為16(為何是16,見下方對HashMap的描述)
加載因子為0.75:即當(dāng) 元素個(gè)數(shù) 超過 容量長度的0.75倍 時(shí),進(jìn)行擴(kuò)容
擴(kuò)容增量:原容量的 1 倍
如 HashSet的容量為16,一次擴(kuò)容后是容量為32
Map是一個(gè)雙列集合
HashMap:默認(rèn)初始容量為16
(為何是16:16是2^4,可以提高查詢效率,另外,32=16<<1 -->至于詳細(xì)的原因可另行分析,或分析源代碼)
加載因子為0.75:即當(dāng) 元素個(gè)數(shù) 超過 容量長度的0.75倍 時(shí),進(jìn)行擴(kuò)容
擴(kuò)容增量:原容量的 1 倍
如 HashSet的容量為16,一次擴(kuò)容后是容量為32
總結(jié)
以上是生活随笔為你收集整理的java list负载_java集合的扩容和负载因子的总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java飞机大战流程图_JAVA课程设计
- 下一篇: aix安装bff_AIX的yum安装