ArrayList、Vector、LinkedList区别

ArrayList、Vector、LinkedList都是实现集合框架中的List的有序集合。
ArrayList:
动态数组实现,Vector在扩容时会提高1倍,而ArrayList则是增加50%。非线程安全。插入和删除速度较慢,但检索速度很快
Vector
动态数组实现,其内部元素以数组形式顺序存储的。线程安全。
LinkedList
双向链表实现,不需要像ArrayList、LinkedList那样调整容量。非线程安全。增加和删除元素的速度较快,但是检索速度较慢。

(单线程应尽量使用ArrayList。Vector因为同步会有性能损耗。在多线程环境下,我们可以利用Collections这个类中为我们提供的synchronizedList(List list)方法返回一个线程安全的同步列表对象。)

Set:不允许重复元素的。
List:有序集合。
Queue/Deque:Java提供的标准队列结构的实现,除了集合的基本功能,它还支持类似先入先出FIFO,后入先出LIFO。
AbstractList:各种List操作的通用部分。
TreeSet:TreeMap实现的。自然顺序访问,但是添加、删除、包含等操作要log(n)时间。
HashSet:以HashMap为基础实现。哈希算法,不保证有序。HashSet性能受自身容量影响,所以初始化时,除非必要,否则不要将其背后的HashMap容量设置过大。
LinkedHashSet:内部构建了一个记录插入顺序的双向链表。由于其内部链表提供的方便,遍历性能只和元素多少有关系。

利用PriorityBlockingQueueDisruptor可实现基于任务优先级为调度策略的执行调度系统。

猜你喜欢

转载自blog.csdn.net/tongwudi5093/article/details/113636839