天天看點

ArrayList,Vector,LinkedList的差別

主要從以下幾個方面來分析:

1.接口

三則都是List接口的實作類

2.内部存儲的實作方式

ArrayList,Vector内部存儲的實作方式是動态數組,在記憶體中是連續存放的,而LinkedList是以連結清單的方式來實作存儲的,在記憶體中不是連續存放的。

3.從線程安全性來比較和效率

Vector的是許多方法都用synchronized來修飾(加同步鎖),是以Vector是線程安全的,而ArrayList并不是同步,是以ArrayList不是線程安全,而 LinkedList也不是線程 安全的。是以ArrayList的效率會比Vector高。而在查找元素的速度上,ArrayList和Vector的效率會比LinkedList高,因為數組可以通過下标來快速定位,而連結清單需要周遊整 個連結清單。但在增加和删除的執行效率上,LinkedList會比ArrayList和Vector高,因為連結清單隻要修改結點的指針即可,而數組需要移動大量的元素。

4.從内部增長機制來比較

在空間不足的情況下,ArrayList增加原來的50%,而Vector增加原來的一倍

繼續閱讀