Java集合List的實現類

List的實現類有下面幾個:

  1. ArrayList 數據結構是動態數組
  2. Vector 數據結構是動態數組
  3. LinkedList 雙向鏈表

 

Array和ArrayList有什麼區別?

  1. Array可以容納基本數據類型和對象,ArrayList只能容納對象
  2. Array大小固定,聲明數組時候指定大小,不可變;ArrayList指定大小,可以動態擴容。

 

ArrayList和Vector有什麼區別?

  1. Vector是線程安全的,從源碼中可以看出,Vector的許多方法上有synchronized,線程同步,執行效率低。
  2. 兩個都是採用的線性連續空間存儲元素,但是當空間不夠用的時候,兩個類的增長方式是不同的。
  3. Vector可以指定增長因子,但是ArrayList是不可以的。

 

ArrayList和LinkedList有什麼區別?

  1. ArrayList的數據結構是基於動態數組的,數據存儲是線性連續的,因此一旦存儲完畢,數據的位置是固定的,查詢效率比較快。因爲地址是連續的在插入/刪除數據的時候需要重新移動數據,所以插入和刪除的效率是低的。
  2. LinkedList採用的是雙向鏈表,地址是任意的,因此數據在存儲的時候是不需要連續的。所以在查詢的時候需要移動指針,查詢效率比較慢。再插入和刪除的時候不要重新移動數據,因此效率比較高。LinkedList適用於頭尾操作或插入指定位置的場景。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章