Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...
ArrayList和Vector的區別
ArrayList與Vector主要從二方面來說. ?
一.同步性:
?? Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的。
二.操作:
??? 由于Vector支持多線程操作,所以在性能上就比不上ArrayList了。
三.數據增長:
?????? ArrayList和Vector都有一個初始的容量大小,當存儲進去它們里面的元素個數超出容量的時候,就需要增加ArrayList和Vector的存儲空間,每次增加存儲空間的時候不是只增加一個存儲單元,是增加多個存儲單元。
?????? Vector默認增加原來的一倍,ArrayList默認增加原來的0.5倍。
?????? Vector可以由我們自己來設置增長的大小,ArrayList沒有提供相關的方法。
LinkedList與ArrayList的區別
兩者都實現的是List接口,不同之處在于:
(1)、ArrayList是基于動態數組實現的,LinkedList是基于鏈表的數據結構。
(2)、get訪問List內部任意元素時,ArrayList的性能要比LinkedList性能好。LinkedList中的get方法是要按照順序從列表的一端開始檢查,直到另一端
(3)、對于新增和刪除操作LinkedList要強于ArrayList,因為ArrayList要移動數據
?????? LinkedList實現了List接口,允許null元素。此外LinkedList提供額外的get,remove,insert方法在LinkedList的首部或尾部。這些操作使LinkedList可被用作堆棧(stack),隊列(queue)或雙向隊列(deque)。
?????? 注意LinkedList沒有同步方法。如果多個線程同時訪問一個List,則必須自己實現訪問同步。一種解決方法是在創建List時構造一個同步的List:
List list = Collections.synchronizedList(new LinkedList(…));
數組(Array)和列表集合(ArrayList)的區別
? Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。
? Array大小是固定的,ArrayList的大小是動態變化的。
? ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()? 等等。
? 對于基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢。
轉載于:https://www.cnblogs.com/Liang-Haishan216/p/6186920.html
總結
以上是生活随笔為你收集整理的Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决 connect to host g
- 下一篇: java美元兑换,(Java实现) 美元