Stack,ArrayDeque,LinkedList的区别

Posted 尚墨1111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stack,ArrayDeque,LinkedList的区别相关的知识,希望对你有一定的参考价值。

一、 LinkedList 提供不同数据结构的函数用法,功能一样,使用习惯不一样

 *
 *   针对链表
 *     add:增加元素
 *     remove:删除元素
 *
 *   队列
 *     poll;弹出队头
 *     offer:在队尾加入新的元素
 *
 **     pop:弹出栈顶元素
 *     pull:栈顶加入元素

二、Stack,ArrayDeque,LinkedList的区别,都可以实现 栈

 *  1. 三者都是 Collection的间接实现类。ArrayDeque实现Deque接口,Stack继承于Vector,LinkedList实现Deque与List接口。
 *  2. Stack底层是长度为 10的数组,ArrayDeque底层是长度为 16的数组,LinkedList底层是链表
 *  3. Stack是线程安全,其余均为线程不安全。
 *  4. 频繁的插入、删除操作:LinkedList
 *     频繁的随机访问操作:ArrayDeque
 *     未知的初始数据量:LinkedList

以上是关于Stack,ArrayDeque,LinkedList的区别的主要内容,如果未能解决你的问题,请参考以下文章

ArrayDeque 源码分析

Queue之ArrayDeque源码

阅读java.util.ArrayDeque源码Note

Java 集合深入理解 (十三) :ArrayDeque实现原理研究,及动态扩容双端队列和单队列和栈比较

ArrayDeque详解

Deque双端队列