1 .队列先入先出,栈先出2 .接口实现的异同队列和栈属于同一个Java集合框架,Collcetion接口实现,队列由Queue接口实现,栈由List实现
3 .逻辑结构和记忆结构的异同他们的逻辑结构是同一个线性结构,记忆结构是顺序记忆结构或连锁记忆结构
4 .方法异同虽然他们同时包含了大部分在Collection接口上声明的方法,但同时两者各有扩展的方法,队列提供了操作四个头节点的方法
界面
java.util.Queue
offer (元素: E ) :布尔值向队列中的轮询(poll ) ) : E中插入元素,获取队列的报头元素,删除它,然后返回到队列: E (如果队列为空则为空) 如果队列为空,则为异常peek ) ) :e,但如果队列为空,则返回nullelement () ) :e进行检索,而不删除队列标头元素。 如果队列为空,则抛出异常堆栈可以对堆栈的顶级元素执行操作,并在堆栈中进行搜索
java.util.VectorE
如果empty ) :e布尔栈为空,则返回true peek : E,返回栈中的最高元素pop : e,并且删除栈中的最高元素push(o: E ) : e
6 .遍历数据速度的异同栈只能从头取数据。 也就是说,最初放入的需要遍历整个堆栈最后取出。 遍历数据时还必须为数据腾出临时空间,以保持遍历前后数据的一致性。
可以根据地址指针进行遍历,从开头或末尾开始遍历,无需占用临时空间,速度更快。
7 .应用场景异同常见栈的应用场景包括括号问题的求解、公式的变换与评估、函数调用与递归实现、深度优先搜索遍历等。
常见的队列应用场景包括计算机系统中各种资源的管理、消息缓冲区的管理、广度优先搜索扫描等。