ArrayList的幾點看法

亮米果果發表於2020-12-02
  • 大資料量操作時使用帶引數構造器,指定需要初始化的容量,以避免不斷擴容帶來的效率低的問題;

    2、ArrayList 一定比LinkedList插入刪除元素慢嗎?

  • 陣列刪除元素確實要比連結串列慢,慢在需要建立新陣列,還有比較麻煩的資料拷貝,但是在ArrayList 底層不是每次刪除元素都需要擴容,因此在這個方面相對於連結串列來說陣列的效能更好

  • LinkedList刪除元素之所以效率並不高,其原理在於底層先需要對整個集合進行折半的動作,然後 又需要對集合進行遍歷一次,這些操作導致效率變低

3、 ArrayList 和 LinkList區別?

  • ArrayList 基於動態陣列的資料結構
    對於隨機訪問的get和set,ArrayList要優於LinkedList 對於隨機操作的add和remove,ArrayList不一定比LinkedList慢 (ArrayList底層由於是動態陣列,因此 並不是每次add和remove的時候都需要建立新陣列) ;
  • LinkedList 基於連結串列的資料結構 對於順序操作,LinkedList不一定比ArrayList慢 對於隨機操作,LinkedList效率明顯較低

相關文章