1. 程式人生 > >ArrayList、Vector和LinkedList的區別

ArrayList、Vector和LinkedList的區別

zed list 使用 mark 使用場景 元素 實現 arraylist 進行

實現方式

  • ArrayList,Vector 是基於數組的實現。

  • LinkedList 是基於鏈表的實現。
    ?

同步

  • ArrayList,LinkedList 不是線程安全的。
  • Vector 是線程安全的,實現方式是在方法中加 synchronized 進行限定。

性能消耗

  • ArrayList和Vector由於是基於數組實現,所以在指定位置插入和刪除時間復雜度為O(n),還可能出現擴容問題,這比較消耗性能。
  • LinkedList不會出現擴容問題,適合增刪操作;查找元素需要遍歷鏈表,時間復雜度為O(n)。

使用場景

  • 快速插入、刪除元素,使用LinkedList
  • 快速隨機訪問元素,使用ArrayList
  • 單線程,使用List,比如ArrayList
  • 多線程,使用Vector

ArrayList、Vector和LinkedList的區別