LinkedList與ArrayList的區別(內部實現)

  • ArrayList的內部實現是基於內部數組Object[],因此從概念上講,它更像數組;
  • LinkedList的內部實現是基於一組鏈接的記錄,因此,它更像一個鏈表結構,因此,它們在性能上有很大的差異。編程

  • 在ArrayList的前面或中間插入數據時,必須將其後的全部數據相應的後移,這樣必然要花費較多時間,因此,當你的操做是在一列數據的後面添加數據而不是在前面或中間,而且須要隨機地訪問其中的元素時,使用ArrayList會提供比較好的性能;
  • 而訪問鏈表中的某個元素時,就必須從鏈表的一端開始沿着鏈接方向一個一個元素地去查找,直到找到所需的元素爲止,因此,當你的操做是在一列數據的前面或中間添加或刪除數據,而且按照順序訪問其中的元素時,就應該使用LinkedList了。
  • 若是在編程中,兩種情形交替出現,這時,能夠考慮使用List這樣的通用接口,而不用關心具體的實現,在具體的情形下,它的性能由具體的實現來保證。數組

相關文章
相關標籤/搜索