源码阅读(10):Java中主要的Queue、Deque结构——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中主要的Queue、Deque结构——ArrayDeque集合(上))