前言:相信很多朋友也和我一樣,集合基本都是用ArrayList和HashMap,除了偶爾用一下HashSet,其他什么ConCurrentHashMap,什么CopyOnWriterArrayList都不管,直接ArrayList和HashMap走天下.今天就說一下Java里常用的集合
1.首先Vector和ArrayList底層數(shù)據(jù)結構都是數(shù)組,實現(xiàn)自List接口
2.所不同的是Vector是同步的,也就是在多線程情況下,vector可以保證線程安全(內部直接使用synchronized關鍵字實現(xiàn))
3.因此ArrayList速度比Vector快得多
LinkedList是List家族另一位成員,
1.實現(xiàn)了List接口
2.底層是雙向鏈表的數(shù)據(jù)結構
3.LinkedList一個元素除了本身內容,只標記一下前后兩個元素,所以插入刪除非常容易.查詢復雜
4.而ArrayList插入,刪除的話,要根據(jù)位置確定消耗時間,刪除或者要插入下標越靠前的元素,消耗越大.
5.除此之外LinkedList還實現(xiàn)了Deque接口(雙端隊列)