一、概况:ArrayDeque实现了Deque接口。可当作栈来用,效率高于stack。也可当作队列来用,效率高于LinkedList。
二、底层用可变数组实现,无容量限制。
三、ArrayDeque是不安全的。
四、各种常用操作对应方法:
1、添加元素:
addFirst(E e)在数组前面添加元素
addLast(E e)在数组后面添加元素
offerFirst(E e)在数组前面添加元素,并返回是否添加成功 offerLast(E e)在数组后添加元素,并返回是否添加成功
2、删除元素:
removeFirst()删除第一个元素,并返回删除元素的值,如果为null,将抛出异常
removeLast()删除最后一个元素,并返回删除元素的值,如果为null,将抛出异常
pollFirst()删除第一个元素,并返回删除元素的值,如果为null,将返回null
pollLast()删除最后一个元素,并返回删除元素的值,如果为null,将返回null
3、获取元素:
getFirst()获取第一个元素,如果为null,将抛出异常
getLast()获取最后一个元素,如果为null,将抛出异常
ArrayDeque当栈和队列用时,对应方法与标准的一样
栈(ArrayDeque是一个双向队列,队列的两端都可以进行增删弹出等操作)
队列(ArrayDeque实现Deque接口,而Deque接口是继承了Queue接口)