Stack,ArrayDeque,LinkedList的区别

类继承树
Stack,ArrayDeque,LinkedList的区别_第1张图片
由继承树看出,三者都是Collection的间接实现类。
ArrayDeque实现Deque接口,Stack继承于Vector,LinkedList实现Deque与List接口。

区别

底层数据存储方式

存储方式
Stack 长度为10的数组
ArrayDeque 长度为16的数组
LinkedList 链表

方法参照表

Stack,ArrayDeque,LinkedList的区别_第2张图片

线程安全

Stack,ArrayDeque,LinkedList的区别_第3张图片

性能选项

通常情况下,不推荐使用Vector以及其子类Stack

1.需要线程同步

使用Collections工具类中synchronizedXxx()将线程不同步的ArrayDeque以及LinkedList转换成线程同步。

2.频繁的插入、删除操作:LinkedList

3.频繁的随机访问操作:ArrayDeque

4.未知的初始数据量:LinkedList

————————————————
版权声明:本文为CSDN博主「cartoony」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cartoon_/article/details/87992743

你可能感兴趣的:(JAVA)