前言:相信很多朋友也和我一样,集合基本都是用ArrayList和HashMap,除了偶尔用一下HashSet,其他什么ConCurrentHashMap,什么CopyOnWriterArrayList都不管,直接ArrayList和HashMap走天下.今天就说一下Java里常用的集合
1.首先Vector和ArrayList底层数据结构都是数组,实现自List接口
2.所不同的是Vector是同步的,也就是在多线程情况下,vector可以保证线程安全(内部直接使用synchronized关键字实现)
3.因此ArrayList速度比Vector快得多
LinkedList是List家族另一位成员,
1.实现了List接口
2.底层是双向链表的数据结构
3.LinkedList一个元素除了本身内容,只标记一下前后两个元素,所以插入删除非常容易.查询复杂
4.而ArrayList插入,删除的话,要根据位置确定消耗时间,删除或者要插入下标越靠前的元素,消耗越大.
5.除此之外LinkedList还实现了Deque接口(双端队列)