我们从一个简单的栈库和一个关联的客户端开始,如例 5-1
所示。这是为 Java 1.4
及其版本的集合框架编写的遗留代码。像集合框架一样,我们将库构造为接口
Stack
(类似于 List
),实现类 ArrayStack
(类似于 ArrayList
)和实用类 Stacks
(类似于 Collections
)。接口堆栈提供了三种方法:empty
,
push
和 pop
。实现类 ArrayStack
提供了一个没有参数的构造函数,并使用方法 size
,add
和 remove
在列表上实现了方法 empty
,push
和
pop
。流行的主体可以更短 - 而不是将值分配给变量,它可以直接返回 - 但是随着代码的发展,变量的类型如何变化会很有趣。实用程序类只提供一种方法,反向,它从
一个堆栈重复弹出并推向另一个堆栈。
客户端分配一个堆栈,向其中推入一些整数,然后弹出一个整数,然后将其余的余数转换为新的堆栈。由于这是 Java 1.4
,所以整数必须在传递到 push
时显式装
箱,并且在由 pop
返回时显式解除装箱。