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

學無先后,達者為師

網站首頁 編程語言 正文

ArrayList和LinkedList和Vector的區別

作者:多干一點飯呀 更新時間: 2022-08-15 編程語言

List主要有ArrayList、LinkedList與Vector幾種實現。

這三者都實現了List 接口,使用方式也很相似,主要區別在于因為實現方式的不同,所以對不同的操作具有不同的效率。

ArrayList 是一個可改變大小的數組.當更多的元素加入到ArrayList中時,其大小將會動態地增長.內部的元素可以直接通過get與set方法進行訪問,因為ArrayList本質上就是一個數組.

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

當然,這些對比都是指數據量很大或者操作很頻繁的情況下的對比,如果數據和運算量很小,那么對比將失去意義.

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

Vector和ArrayList在更多元素添加進來時會請求更大的空間。Vector每次請求其大小的雙倍空間,而ArrayList每次對size增長50%.

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

注意: 默認情況下ArrayList的初始容量非常小,所以如果可以預估數據量的話,分配一個較大的初始值屬于最佳實踐,這樣可以減少調整大小的開銷。

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

欄目分類
最近更新