array
list
底層是乙個陣列,linkedlist底層是乙個鍊錶他們的區別在一定的程度上就是代表了陣列還有鍊錶的區別,其區別如下
在記憶體中,陣列是一塊連續的區域。
陣列需要預留空間,在使用前要先申請佔記憶體的大小,可能會浪費記憶體空間。
插入資料和刪除資料效率低,插入資料時,這個位置後面的資料在記憶體中都要向後移。
隨機讀取效率很高。因為陣列是連續的,知道每乙個資料的記憶體位址,可以直接找到給位址的資料。
並且不利於擴充套件,陣列定義的空間不夠時要重新定義陣列。
陣列的優點:具有隨機訪問性強,查詢速度快
插入和刪除效率低
可能浪費記憶體
記憶體空間要求高,必須有足夠的連續記憶體空間。
陣列大小固定,不能動態拓展
在記憶體中可以存在任何地方,不要求連續。
增加資料和刪除資料很容易。
查詢資料時效率低,不具有隨機訪問性。
不指定大小,擴充套件方便。鍊錶大小不用定義,資料隨意增刪。
鍊錶的優點
插入刪除速度快
記憶體利用率高,不會浪費記憶體
大小沒有固定,拓展很靈活。
LinkedList和ArrayList的區別
對於集合collection下的list介面,有兩個實現類,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 如果目前的資料是查詢比較多,增刪...