0


JAVA中实现队列和栈(Deque接口和ArrayDeque类)

用什么来实现队列和栈

首先JAVA中有一个Queue接口,用来实现队列。Deque其实就是双端队列,代表两端都可进可出的队列。ArrayDeque就是用数组来实现这个双端队列。

(Deque由于是接口,只可以用于声明对象,但是没办法实例化,实例化还是要使用ArrayDeque类)

这时可能就会产生疑惑,队列有了,那么栈用什么来实现呢,其实在Java中栈也是用这个Deque来实现,具体实现下面会写,现在先放在一边,思考那么Java中的Stack类不就是栈吗,为什么不使用Stack来作为栈呢?这就是涉及到了一个历史遗留问题,Java中有一个Vector类,而Stack就是集成自这个Stack类,Vector现在已经基本被弃用了,因为vector所有的操作都进行了同步操作以保证线程安全,这在单线程的程序中是非常浪费时间的,所以弃用了。

如何实现

那么具体如何实现呢,因为Deque是双端队列,所以我们从两端都可以进可出。记住下列方法即可。下面论述都把对应空间想象成一个队尾在左,队头在右的队列来进行操作。

用作栈

push():在栈顶插入元素(队头插入)

pop():弹出栈顶元素(队头弹出)

peek():返回栈顶元素(返回队头)

isEmpty():判断是否尾空

用作队列

add():在队尾插入元素(offer()也可以,有细微区别)

poll():从队头弹出元素(pop()逻辑上也可以)

peek():访问队头元素

isEmpty():判断是否为空

标签: java 开发语言

本文转载自: https://blog.csdn.net/qq_52983535/article/details/140870703
版权归原作者 qq_52983535 所有, 如有侵权,请联系我们删除。

“JAVA中实现队列和栈(Deque接口和ArrayDeque类)”的评论:

还没有评论