日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

ArrayList和LinkedList和Vector的區(qū)別

作者:多干一點(diǎn)飯呀 更新時(shí)間: 2022-08-15 編程語言

List主要有ArrayList、LinkedList與Vector幾種實(shí)現(xiàn)。

這三者都實(shí)現(xiàn)了List 接口,使用方式也很相似,主要區(qū)別在于因?yàn)閷?shí)現(xiàn)方式的不同,所以對(duì)不同的操作具有不同的效率。

ArrayList 是一個(gè)可改變大小的數(shù)組.當(dāng)更多的元素加入到ArrayList中時(shí),其大小將會(huì)動(dòng)態(tài)地增長(zhǎng).內(nèi)部的元素可以直接通過get與set方法進(jìn)行訪問,因?yàn)锳rrayList本質(zhì)上就是一個(gè)數(shù)組.

LinkedList 是一個(gè)雙鏈表,在添加和刪除元素時(shí)具有比ArrayList更好的性能.但在get與set方面弱于ArrayList.

當(dāng)然,這些對(duì)比都是指數(shù)據(jù)量很大或者操作很頻繁的情況下的對(duì)比,如果數(shù)據(jù)和運(yùn)算量很小,那么對(duì)比將失去意義.

Vector 和ArrayList類似,但屬于強(qiáng)同步類。如果你的程序本身是線程安全的(thread-safe,沒有在多個(gè)線程之間共享同一個(gè)集合/對(duì)象),那么使用ArrayList是更好的選擇。

Vector和ArrayList在更多元素添加進(jìn)來時(shí)會(huì)請(qǐng)求更大的空間。Vector每次請(qǐng)求其大小的雙倍空間,而ArrayList每次對(duì)size增長(zhǎng)50%.

而 LinkedList 還實(shí)現(xiàn)了 Queue 接口,該接口比List提供了更多的方法,包括 offer(),peek(),poll()等.

注意: 默認(rèn)情況下ArrayList的初始容量非常小,所以如果可以預(yù)估數(shù)據(jù)量的話,分配一個(gè)較大的初始值屬于最佳實(shí)踐,這樣可以減少調(diào)整大小的開銷。

原文鏈接:https://blog.csdn.net/weixin_47146097/article/details/126335537

欄目分類
最近更新