陣列:存放記憶體位址必須連續的.
查詢的時候很方便,可以通過陣列下標獲取資料;
新增刪除很不方便,如果插入乙個元素,必須這個元素後面的元素都往後移乙個記憶體位址
刪除,所有後面元素都往前移動乙個記憶體位址
鍊錶:存放記憶體位址可以不連續,存放方式是通過元素中的指標,來尋找下乙個元素.
這種結構新增刪除元素很容易,只要修改指標指向下下個元素,就能刪除,而新增則是
乙個元素的指標指向後面的插入位置後面的元素,插入位置的指標指向插入元素就行
陣列
優點:查詢速度快,可隨機訪問
缺點:
1.刪除插入效率低,
2.記憶體必須連續,
3.有浪費記憶體的可能,
4.陣列大小固定,不能動態拓展
鍊錶
優點:插入刪除速度快,記憶體不需要連續,大小可以不固定
缺點:查詢效率低,每次通過第乙個開始遍歷,只能順序訪問,不支援隨機訪問
這裡要聊聊 arraylist了
arrylist裡初始化有乙個固定長度的default_capacity=10
當資料超過10之後 會以1.5長度倍數執行grow()方法,方法中會呼叫array.copyof
而copyof的實現是通過建立新陣列的array[新陣列長度]來實現的,相當於給原來的陣列變數賦值了乙個新的加長的陣列,這陣列拷貝了原來的資料
3 陣列和鍊錶的區別及優缺點
陣列 是將元素在記憶體中連續存放,由於每個元素占用記憶體相同,可以通過下標迅速訪問陣列中任何元素。但是如果要在陣列中增加乙個元素,需要移動大量元素,在記憶體中空出乙個元素的空間,然後將要增加的元素放在其中。同樣的道理,如果想刪除乙個元素,同樣需要移動大量元素去填掉被移動的元素。如果應用需要快速訪問資...
陣列與鍊錶的優缺點和區別
1.陣列 陣列是將元素在記憶體中連續存放,由於每個元素占用記憶體相同,可以通過下標迅速訪問陣列中任何元素。但是如果要 在陣列中增加乙個元素,需要移動大量元素,在記憶體中空出一 個元素的空間,然後將要增加的元素放在其中。同樣的 道理,如果想刪除乙個元素,同樣需要移動大量元素去填掉被移動的元素。如果應用...
陣列和鍊錶的區別和優缺點總結
陣列和鍊錶是兩種基本的資料結構,他們在記憶體儲存上的表現不一樣,所以也有各自的特點。鍊錶中各結點在記憶體中的存放位置是任意的。1 陣列的元素個數是固定的,而組成鍊錶的結點個數可按需要增減 2 陣列元素的存諸單元在陣列定義時分配,鍊錶結點的儲存單元在程式執行時動態向系統申請 3 陣列中的元素順序關係由...