對於集合collection下的list介面,有兩個實現類,arraylist和linkedlist,那麼他們兩個有什麼區別呢。
arraylist的底層由陣列實現,而linkedlist的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。
然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。
關於linkedlist底層詳解:
關於arraylist的主要方法詳解:
實際上只要我們明白了陣列和鍊錶的區別,我們就能明白arraylist和linkedlist的區別。
比如我們想要進行查詢功能,我們就應該使用arraylist,因為他的底層——陣列的每個元素都有自己的下標,方便於我們的查詢目的。
再比如我們想要進行刪除和新增,我們就應該使用linkedlist,因為他的底層——鍊錶會動態的進行儲存分配,更適應資料動態增減的情況,而陣列則不同,一旦我們對他進行插入或者刪除操作,進行操作元素的位置之後的元素則全部需要移動,這是一件非常不划算的事情。
ArrayList和LinkedList的面試題
一 arraylist為什麼是執行緒不安全的?arraylist在新增乙個元素的時候,它可能會有兩步來完成 1.在 items size 的位置存放此元素 2.增大 size 的值。在單執行緒執行的情況下,如果 size 0,新增乙個元素後,此元素在位置 0,而且 size 1 而如果是在多執行緒情...
ArrayList和LinkedList的用法
集合的體系 collection 單列集合的根介面 list 如果是實現了list介面的實現類,該集合類具備的特點 有序,可重複 arraylist arraylist底層是維護了 乙個object陣列實現的,特點 查詢速度快,增刪慢。什麼時候使用arraylist 如果目前的資料是查詢比較多,增刪...
linkedList和ArrayList的比較
1.arraylist是實現了基於動態陣列的資料結構,linkedlist基於鍊錶的資料結構。2.對於隨機訪問get和set,arraylist覺得優於linkedlist,因為linkedlist要移動指標。3.對於新增和刪除操作add和remove,linedlist比較佔優勢,因為arrayl...