- 因為Array是基于索引(index)的數據結構,它使用索引在數組中搜索和讀取數據是很快的。Array 獲取數據的時間復雜度是 O(1),但是要刪除數據卻是開銷很大的,因為這需要重排數組中的所有數據。
- 相對于ArrayList,LinkedList插入是更快的。因為LinkedList不像ArrayList一樣,不需要改變數組的大小,也不需要在數組裝滿的時候要將所有的數據重新裝入一個新的數組,這是ArrayList最壞的一種情況,時間復雜度是O(n),而LinkedList中插入或刪除的時間復雜度僅為O(1)。ArrayList在插入數據時還需要更新索引(除了插入數組的尾部)。
- 類似于插入數據,刪除數據時,LinkedList也優于ArrayList。
- LinkedList需要更多的內存,因為ArrayList的每個索引的位置是實際的數據,而LinkedList中的每個節點中存儲的是實際的數據和前后節點的位置。
- 如果你的應用經常需要隨機訪問數據,則考慮使用ArrayList。因為如果需要LinkedList中的第n個元素的時候,你需要從個元素順序數到第n個數據,然后讀取數據。
- 你的應用經常進行插入和刪除元素,更少的讀取數據,考慮使用LinkedList。因為插入和刪除元素不涉及重排數據,所以它要比ArrayList 要快。