網站首頁 編程語言 正文
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
相關推薦
- 2022-06-17 C#使用讀寫鎖解決多線程并發問題_C#教程
- 2022-10-24 React報錯之Parameter?event?implicitly?has?an?any?type
- 2022-10-12 基于PyQt5實現狀態欄(statusBar)顯示和隱藏功能_python
- 2022-07-03 c語言中的二級指針做函數參數說明_C 語言
- 2024-02-16 SpringBoot 攔截器Intercepto的創建與基本使用
- 2022-09-27 linux?shell中Grep命令查找多個字符串(grep同時匹配多個關鍵字或任意關鍵字)_lin
- 2022-05-11 Qt編寫地圖之實現經緯度坐標糾偏_C 語言
- 2022-08-27 Python服務器創建虛擬環境跑代碼_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支