栈和队列

4.1 Stack接口

(stack)是一种存储多个数据数据项的数据结构,遵循后进先出(last-in,first-out,LIFO)。

4.1.1泛型

泛型(generic)类或接口具有一个、或多个类型参数(type

parameter),指示它保存的是哪些类型的事物。

4.2调用栈

在调用开始之前,java会以某种方式“记录”它正在做什么。它通过调用一个栈来执行该任务。这个栈(称为调用栈(call stack))存在于幕后。它不是我们可以访问的对象,但是既然我们了解栈,就能了解它。

每次调用一个方法时,都会创建一个称为调用帧(call frame)的幕后对象。调用帧用于记录方法的当前状态。

4.3异常

异常(exception)是在程序工作期间发生的一种不常见的事件。

4.4 Queue接口

队列(queue)与栈非常相似,只不过它是在一端(队尾)插入数据项,而在另一端(队头)删除数据项。因此,队列遵循先进先出(first-in,first-out,FIFO)。

4.5小结

栈和队列都是对象的集合。栈遵循后进先出策略:对象都从顶部压入和弹出。队列遵循先进先出策略:对象添加到队尾,而从队头删除。