回覆列表
  • 1 # 變餅檔

      一般大家都知道ArrayList和LinkedList的大致區別:

      1.ArrayList是實現了基於動態陣列的資料結構,LinkedList基於連結串列的資料結構。 (LinkedList是雙向連結串列,有next也有previous)

      2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。

  • 2 # CoreCode

    ArrayList實現了隨機訪問的介面,LinkedList實現了Quene的介面。

      ArrayList是基於資料實現的list,而LinkedList是基於連結串列實現的list。所以,ArrayList擁有著陣列的特性,LinkedList擁有著連結串列的特性。

    優缺點

      ArrayList

      優點:適合隨機讀取的時候,讀取速度快,可以一步get(index)。

      缺點:新增值很慢——一方面,新增資料在array中間的時候,需要移動後面的數;另一方面,當長度大於初始長度的時候,每新增一個數,都會需要擴容。

      LinkedList:雙向連結串列

      優點:新增值很快——新增在list中間也只需要更改指標;長度不固定。

      實現棧和佇列方面,LinkedList要優於ArrayList。

    其它

      LinkedList的remove(int)和remove(Object)的方法的時間複雜度都是O(n),不是O(1).因為會有一個查詢的過程。

      LinkedList的remove(int)要優於remove(Object),因為remove(int)在查詢的時候,會從連結串列的中間查詢,如果int比中間小,找前半部分,否則找後半部分(類似二分查詢)。

      ArrayList的增刪比LinkedList的開銷更大,因為除了有查詢的時間複雜度外,還有增刪的移動過程。

  • 3 # 變餅檔

      一般大家都知道ArrayList和LinkedList的大致區別:

      1.ArrayList是實現了基於動態陣列的資料結構,LinkedList基於連結串列的資料結構。 (LinkedList是雙向連結串列,有next也有previous)

      2.對於隨機訪問get和set,ArrayList覺得優於LinkedList,因為LinkedList要移動指標。

  • 4 # CoreCode

    ArrayList實現了隨機訪問的介面,LinkedList實現了Quene的介面。

      ArrayList是基於資料實現的list,而LinkedList是基於連結串列實現的list。所以,ArrayList擁有著陣列的特性,LinkedList擁有著連結串列的特性。

    優缺點

      ArrayList

      優點:適合隨機讀取的時候,讀取速度快,可以一步get(index)。

      缺點:新增值很慢——一方面,新增資料在array中間的時候,需要移動後面的數;另一方面,當長度大於初始長度的時候,每新增一個數,都會需要擴容。

      LinkedList:雙向連結串列

      優點:新增值很快——新增在list中間也只需要更改指標;長度不固定。

      實現棧和佇列方面,LinkedList要優於ArrayList。

    其它

      LinkedList的remove(int)和remove(Object)的方法的時間複雜度都是O(n),不是O(1).因為會有一個查詢的過程。

      LinkedList的remove(int)要優於remove(Object),因為remove(int)在查詢的時候,會從連結串列的中間查詢,如果int比中間小,找前半部分,否則找後半部分(類似二分查詢)。

      ArrayList的增刪比LinkedList的開銷更大,因為除了有查詢的時間複雜度外,還有增刪的移動過程。

  • 中秋節和大豐收的關聯?
  • 《星際爭霸2虛空之遺》的,結局是什麼意思?