1. 程式人生 > >【java】——連結串列與陣列的區別

【java】——連結串列與陣列的區別

連結串列 陣列
記憶體佔用 不需要連續的記憶體空間 需要連續的記憶體空間
大小可變 連結串列的大小可動態變化 陣列大小固定,不能動態擴充套件
增刪 較快,只需要修改前一個元素的指標即可 較慢,需要移動修改元素只有的所有元素
查詢 較慢,只能遍歷查詢 較快,可以通過下標直接訪問
單向連結串列 雙向連結串列
指標 每個元素只有一個指標只會下一個元素的地址 每個元素有兩個指標只會上一個和下一個元素的地址
查詢 較慢 較快,可以通過二分查詢來提速
增刪 較快 更快
儲存效率 略高,除了儲存元素,只會儲存一個指標 較低,除了儲存元素,需要儲存兩個指標

備註:雙向連結串列的增、刪、查均優於單向連結串列,但是目前市面上用的較多的仍為單向連結串列,主要是雙向連結串列的多一個指標,在儲存效率上低於單向連結串列。一個指標在32位系統需要4個位元組來儲存,在64位系統需要8個位元組來儲存。