arraylist和linkedlist是常用的兩種儲存結構,那麼它們有哪些區別呢?這裡簡單給出一部分。
1、arraylist和linkedlist可想從名字分析,它們乙個是array(動態陣列)的資料結構,乙個是link(鍊錶)的資料結構,此外,它們兩個都是對list介面的實現。
前者是陣列佇列,相當於動態陣列;後者為雙向鍊錶結構,也可當作堆疊、佇列、雙端佇列
2、當隨機訪問list時(get和set操作),arraylist比linkedlist的效率更高,因為linkedlist是線性的資料儲存方式,所以需要移動指標從前往後依次查詢。
3、當對資料進行增加和刪除的操作時(add和remove操作),linkedlist比arraylist的效率更高,因為arraylist是陣列,所以在其中進行增刪操作時,會對操作點之後所有資料的下標索引造成影響,需要進行資料的移動。
4、從利用效率來看,arraylist自由性較低,因為它需要手動的設定固定大小的容量,但是它的使用比較方便,只需要建立,然後新增資料,通過呼叫下標進行使用;而linkedlist自由性較高,能夠動態的隨資料量的變化而變化,但是它不便於使用。
5、arraylist主要控制項開銷在於需要在llist列表預留一定空間;而linklist主要控制項開銷在於需要儲存結點資訊以及結點指標資訊。
Array List和ArrayList的區別與
定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...
LinkedList和ArrayList的區別
對於集合collection下的list介面,有兩個實現類,arraylist和linkedlist,那麼他們兩個有什麼區別呢。arraylist的底層由陣列實現,而linkedlist的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。關於...
ArrayList和LinkedList的面試題
一 arraylist為什麼是執行緒不安全的?arraylist在新增乙個元素的時候,它可能會有兩步來完成 1.在 items size 的位置存放此元素 2.增大 size 的值。在單執行緒執行的情況下,如果 size 0,新增乙個元素後,此元素在位置 0,而且 size 1 而如果是在多執行緒情...