什么是Deque
deque是一种双端队列,可以从头部加入弹出元素 也可能从尾部加入弹出元素,利用他的性质,轻松替换Stack 和 Queue
Deque 替换Stack
栈 ;先进后出
- push : 加入元素 (加入栈顶)
- pop : 弹出元素 (弹出栈顶元素)
- peek : 查看栈顶的元素(最新加入的元素)
使用deque 做stack用途 他也提供了 对应的 push pop peek的方法 对应使用
Deque 替换Queue
队列 先进先出
- offer : 加入元素(加入队尾)
- poll : 弹出元素(弹出队头)
- element : 查看队头的元素(最早加入的元素)
使用deque 做stack用途 他也提供了 对应的 offer poll element 的方法 对应使用
要组合的使用 不要使用了队列的api 又去结合栈的api 容易混乱 做题容易踩坑
使用那种Deque子类 比较好
- ArrayDeque : 底层实现是数组,所以对于查询比较友好 ,对增删不友好
- LinkedList : 底层是链表,所以对查询不太友好,增删比较友好