源码阅读(10):Java中主要的QueueDeque结构——ArrayDeque集合(上)

Posted 说好不能打脸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码阅读(10):Java中主要的QueueDeque结构——ArrayDeque集合(上)相关的知识,希望对你有一定的参考价值。

(接上文《源码阅读(9):Java中主要的Queue、Deque结构——概述》)

2.Java.util.ArrayDeque结构解析

ArrayDeque集合是从JDK 1.6版本开始推出的,这是一个基于数组(可扩容的数组)结构实现的双端队列。这个数组结构和普通的数组结构相比而言,前者是一个可循环使用的数组结构,这样的数组结构可以有效减少数组扩容的次数。ArrayDeque集合是线程不安全的,官方并不推荐在多线程环境下使用。

ArrayDeque集合既有队列、双端队列的操作特点,也有栈结构的操作特点。因此它是JDK 1.6 + 版本发布后,Java官方推荐的继Stack集合和LinkedList集合后,用来做“栈”结构操作的新的集合。在官方文档中也介绍了推荐原因:

"This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue. "

后一篇文章将详细分析为什么将ArrayDeque集合作为“栈”结构使用时,它的性能比Stack集合好,又为什么将它作为“队列”/“双端队列”结构使用时,它的性能又比LinkedList集合好。

2.1、ArrayDeque中的主要结构和方法

所谓可循环使用的数组结构是指这样的数组:其中定义了一个动态的有

以上是关于源码阅读(10):Java中主要的QueueDeque结构——ArrayDeque集合(上)的主要内容,如果未能解决你的问题,请参考以下文章

源码阅读(15):Java中主要的Map结构——概述

源码阅读(12):Java中主要的QueueDeque结构——PriorityQueue集合(上)

源码阅读(22):Java中其它主要的Map结构——TreeMap容器

源码阅读(27):Java中主要的Set结构——LinkedHashSetTreeSet等结构

源码阅读(14):Java中主要的QueueDeque结构——PriorityQueue集合(下)

源码阅读(24):Java中其它主要的Map结构——LinkedHashMap容器(下)