download:云原生应用架构设计与开发实战无密
ArrayDeque深度解析 概述 ArrayDeque这个容器不知道大家在平常的工作中运用的多吗?它是一个非常强大的容器,既可以作为队列完成FIFO先进先出的功用,也具备栈的功用完成FILO先进后出的功用,那么它究竟是怎样样的呢?性能又如何? ArrayDeque引见 ArrayDeque主要是基于数组完成的Deque(Double Ended Queue)双端队列,即双端队列,它既可以当作栈运用,也可以当作队列运用。 ArrayDeque是一个没有容量限制的双端队列,底层是基于数组完成,会自动扩容。 ArrayDeque不是线程安全的。 ArrayDeque不可以存取null元素。 当作为栈运用时,性能比Stack好;当作为队列运用时,性能比LinkedList好。 完成了Queue接口,它理论上是一个单端队列,只能操作队列的一端。 完成了Deque接口,Deque集成了Queue接口,有api可以同时操作队列的双端。 完成了Cloneable接口,说明该队列支持clone。 完成了Serializable接口,标志该接口支持序列化操作。 构造方法 方法说明ArrayDeque()构造一个初始容量为16的数组双端队列ArrayDeque(int numElements)构造一个初始容量为numElements的数组双端队列ArrayDeque(Collection<? extends E> c)构造一个初始内容未c的数组双端队列 关键方法 添加相关方法 等价方法说明add(e)addLast(e)向队列尾部添加元素offer(e)offerLast(e)向队列尾部添加元素addFirst(e)offerFirst(e)向队列头部添加元素