數組與鏈表中查找與更新的操做效率數組
LinkedList與ArrayList都實現了List接口,但它們的數據結構有差別,各有其優缺點,主要表如今不一樣操做的效率。數據結構
ArrayList的優勢在於,對get和set的調用花費常數時間。其缺點是新項的插入和現有項的刪除代價極其昂貴(O(N^2)),除非變更是在ArrayList的末端進行。ide
LinkedList的優勢在於,新項的插入和現有項的刪除均開銷很小(假設變更項位置已知)。其缺點是它不容易做索引,所以對get的調用是昂貴(O(N))的,除非調用很是接近表的端點。索引
所以,當不須要頻繁更新List時,使用ArrayList效率高、空間開銷小(數組數據密集),反之,使用LinkedList效率高。接口