ArrayList,LinkedList以及Vector的區別?

ArrayList,LinkedList以及Vector的區別:

1 ArrayList底層是採用數組實現的(並且改數組的類型是Object類型的)
2 如果是jdk6的話,採用Array.of()方法來生成一個新的數組,如果是jdk5.0的話,使用的是
System.arraycopy方法(將數組拷貝)
3 List list = new ArrayList();時,底層會生成一個長度爲10的數組來存放對象,如果預先知道list
會存放多少個對象的話,最好通過new ArrayList(int length)的方式先確定數組的最小長度,如new
ArrayList(50),這樣能提高底層的效率。
4 對於ArrayList與Vector來說,底層都是採用數組方式來實現的(該數組是一個Object類型的數組)
5 對於ArrayList,所有方法都不是同步的,對於Vector,大部分是public的方法都是同步的。
6、LinkedList底層是由雙向循環鏈表實現的,對於ArrayList,查找速度非常快,增加和刪除操作非常
慢。(本質上是由數組的特點來決定的)
7、對於LinkList,查找速度非常慢,增加和刪除操作非常快。(本質上是由雙向循環鏈表的特點來決定
的)
發佈了10 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章