首先兩個類都實現了List接口。他們都是有序不唯一的集合,說白了就是存儲元素的位置是有序的(每一個元素都以一個對應的索引),相當於一個動態數組
ArrayList和Vector的區別,主要包括兩個方面
同步性:
Vector是線程安全的,也就是說它的方法直線是線程同步的,而ArrayList是線程不安全的,它的方法之間是線程不同步的
如果只有一個線程去訪問集合那么使用ArrayList,他不考慮線程安全的問題,所以效率會高一些
如果是多個線程去訪問集合,那么使用Vector
數據增長性:
ArrayList和Vector集合都有一個初始容量的大小,當元素的個數超過存儲容量是,就需要增加ArrayList和Vector的存儲空間,每次增加不是
增加一個而是增加多個,Vector是增加原來的兩倍,ArrayList沒有明文規定,但是從源碼中可以看出增長原來的1.5倍
ArrayList和Vector可以設置初始的存儲空間的大小,Vector還以設置增長空間大小,而ArrayList不可以。