ArrayList和LinkedList的區別是什麼
一、區別
- ArrayList是基於動態陣列的資料結構,LinkedList是基於雙向連結串列的資料結構(有next和previous)
- ArrayList有get()和set()方法,隨機訪問比較快(O(1)),而LinkedLsit的訪問需要從頭開始移動指標(O(n))。
- 對新增和刪除操作add()和remove操作,LinkedList更加快捷,因為ArrayList需要移動資料。
- 但在某些情況下LinkedList的表現要優於ArrayList,有些演算法在LinkedList中實現時效率更高。比方說,利用Collections.reverse方法對列表進行反轉時,其效能就要好些。當要對list進行大量的插入和刪除操作時,LinkedList也是一個較好的選擇。
- 空間浪費:ArrayList浪費空間主要在於在list列表的結尾需要預留一定的容量空間;LinkedList1的空間花費則體現在每一個元素消耗的空間比較大。
二、總結
當操作是在一列資料的後面新增資料而不是在前面或中間,並且需要隨機地訪問其中的元素時,使用ArrayList會提供比較好的效能;當你的操作是在一列資料的前面或中間新增或刪除資料,並且按照順序訪問其中的元素時,就應該使用LinkedList了
相關文章
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- ArrayList和LinkedList的區別?
- ArrayList和LinkedList的區別
- ArrayList和LinkedList區別 javaJava
- java集合【12】——— ArrayList,LinkedList,Vector的相同點與區別是什麼?Java
- Java中ArrayList和LinkedList區別Java
- java複習之 Vector、ArrayList和LinkedList 的區別Java
- ARRAYLIST VECTOR LINKEDLIST 區別與用法
- ArrayList和LinkedList底層原理的區別和使用場景
- ArrayList,LinkedList,Vector,Stack之間的區別
- 什麼是PCB?什麼是PCBA?PCB和PCBA的區別?
- cat和vim的區別是什麼?
- python is和==的區別是什麼?Python
- HIVE和HBASE的區別是什麼Hive
- JDO和JPA的區別是什麼?
- ArrayList、Vector、LinkedList的區別及其優缺點? (轉載)
- ArrayList和LinkedList的比較
- Vector和ArrayList的區別
- cookie是什麼?和session有什麼區別?CookieSession
- Mssql和Mongodb區別是什麼SQLMongoDB
- powershell和cmd區別是什麼
- 【java】【集合】List的三個子類—ArrayList、Vector、LinkedList的區別和聯絡Java
- 前端和後端的區別是什麼?前端後端
- disabled和readonly的區別是什麼
- 《openstack 和hadoop的區別是什麼?》Hadoop
- 轉:samba和NFS的區別是什麼?SambaNFS
- decimal,float和double的區別是什麼?Decimal
- 過渡和動畫的區別是什麼?動畫
- Java和Python是什麼?有什麼區別?JavaPython
- ArrayList和LinkedList如何實現的?
- SCRM是什麼,SCRM和CRM區別?
- text(),val()和html()區別是什麼HTML
- ArrayList 和 Vector 的區別 -JAVAJava
- Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及區別Java
- HTTP和HTTPS是什麼 二者區別是什麼HTTP
- 連梁和框架樑的區別是什麼?框架
- reactjs和vuejs的區別是什麼ReactJSVue
- Kata和Kaizen之間的區別是什麼?AI