在日常開發中,經常使用到ArrayList型別,也就是List介面的實現類,List和Set介面又都繼承了Collection介面。
總不能總是使用ArrayList和HashSet吧?
所以藉此機會梳理一下各個實現類的特點以及使用場景:
1、ArrayList
優點:陣列實現,可以透過索引快速訪問
缺點:
1、插入和刪除元素,需要頻繁移動元素位置
2、陣列空間不夠需要擴容時,會開闢新陣列把就陣列複製過去,耗效能
3、執行緒不安全
2、LinkedList
雙向連結串列實現
優點:使用連結串列實現,適合動態插入和刪除
缺點:
1、隨機訪問元素的速度較慢
2、基於連結串列資料結構的實現,佔用的記憶體空間較大(除了儲存資料本身,還要儲存指標資訊)
3、Vector
基於陣列資料結構實現
優點:執行緒安全
缺點:效率低,插入、刪除、查詢元素所有操作的效率都很低
使用場景:
arrayList
由於有動態擴容的特性,適合在不知道列表大小的時候使用
適合快速隨即查詢和遍歷
不適合頻繁插入和刪除操作
linkedList
適合需要隨機插入、刪除效率要求比較高的時候
可以作為佇列和棧使用
vector
一般開發中很少使用。
關於各種List型別特點以及使用的場景
相關文章
- Redis多種資料型別以及使用場景Redis資料型別
- 關於Ajax和websocket的區別以及使用場景!Web
- 關於Redis資料型別以及應用場景的分析與總結Redis資料型別
- redis 五種資料型別和使用場景梳理!Redis資料型別
- python中list的各種方法使用Python
- redis部署以及各種資料型別使用命令等詳解Redis資料型別
- 在.Net Core當中的WebApi 的模型繫結各種示例用法 以及使用場景WebAPI模型
- UIModalPresentationStyle 各種型別的區別UI型別
- Java中的引用型別和使用場景Java型別
- 身份證識別應用場景及功能特點
- Redis五種資料型別應用場景Redis資料型別
- Redis中7種集合型別應用場景Redis型別
- redis的五種資料型別及應用場景Redis資料型別
- 秒殺系統的場景特點
- USDT支付通道開發-特點以及實現應用場景落地
- 面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景面試Redis資料型別
- 講解關於蘋果開發者賬號的三種型別以及區別有哪些蘋果型別
- 幽默:關於型別的觀點演變型別
- Redis系列-資料型別及使用場景Redis資料型別
- 關於synchronized的理解,共有兩種型別的鎖:synchronized型別
- ThreadLocal概念以及使用場景thread
- js建立物件的各種方法以及優缺點JS物件
- mybatis關於list的foreach的使用MyBatis
- javascript 判斷各種資料的型別JavaScript型別
- 一文弄懂分散式場景中各種鎖的原理及使用分散式
- 泛型使用場景泛型
- Redis 資料型別及其使用場景 String 篇Redis資料型別
- Kubernetes的優勢、適應場景及其特點
- Hbase和Hive的特點,和應用場景Hive
- 關於Ruby的語言特點
- spring事務失效的幾種場景以及原因Spring
- SQL稽核 | 如何快速使用 SQLE 稽核各種型別的資料庫SQL型別資料庫
- Lyn Mac特別版 支援各種主流影像格式Mac
- Redis三種特殊資料型別API詳解附帶詳細使用場景Redis資料型別API
- go的 & 和 * 的區別,以及應用場景Go
- RabbitMQ 簡介以及使用場景MQ
- .Net 對於PDF生成以及各種轉換的操作
- java的各種集合為什麼不安全(List、Set、Map)以及代替方案Java