Java 对比Vector、ArrayList、LinkedList
①引言
在日常生活中能高效的管理和操作數據是非常重要的。Java提供了強大的集合框架,大大提高了開發者的生產力,今天就了解一下有關集合框架方面的問題。
Vector、ArrayList、LinkedList這3者都是實現集合框架的List,也就是所謂的有序集合,因此具體功能也比較近似,比如都可以按照位置進行定位、添加或者刪除的操作,都提供迭代器遍歷其內容。但因為具體的設計區別,在行為、性能、線程安全等方面。表現又有很大不同。
?
②Vector
Vector是Java早期提供的線程安全的動態數組,如果不需要線程安全,并不建議選擇,畢竟同步是有額外開銷的。Vector內部是使用對象數組來保存數據,可以根據需要來自動的增加容量,當數組已滿時,會創建新的數組,并copy原有數據。
?詳細內容請參考 https://www.cnblogs.com/baxianhua/p/9209249.html
?
?③ArrayList
ArrayList是應用更加廣泛的動態數組實現,它本身不是線程安全的,所以性能要好很多。與Vector近似,ArrayList也是可以根據需要調整容量,不過兩者的調整邏輯有區別,Vector在擴容時會提高一倍,而ArrayList會增加50% .
?詳細內容請參考https://www.cnblogs.com/baxianhua/p/9211265.html
?
?④LinkedList
是Java提供的雙向鏈表。它不需要象上面兩種那樣調整容量,它也不是線程安全的。
?詳細內容請參考https://www.cnblogs.com/baxianhua/p/9225445.html
?
⑤比較
Vector和ArrayList作為動態數組,其內部元素以數組形式順序存儲,所以非常適合隨機訪問的場合。除了尾部插入和刪除元素,往往性能會較差,比如我們在中間位置插入一個元素,需要移動后面所有元素。而LinkedList進行節點插入刪除要高效很多,但是隨機訪問性能則要比動態數組慢。
?
轉載于:https://www.cnblogs.com/baxianhua/p/9208969.html
總結
以上是生活随笔為你收集整理的Java 对比Vector、ArrayList、LinkedList的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows批处理(cmd/bat)常
- 下一篇: Saltstack基本安装部署