题目:利用继承实现MyStack,在程序清单11-10中,MyStack是用组合实现的。扩展ArrayList创建一个新的栈类。实现MyStack类。编写一个测试程序,提示用户输入5个字符串,然后以逆序显示这些字符串。
代码实现:
“`
package experience5;
public class TestMyStack
extends java.util.ArrayList {
public Object peek() {//实现获取栈的最后一个元素
return this.get(size() - 1);
}
public Object pop() {//创建栈的实例并把栈的最后一个元素传给实例对象,然后删除这个元素
Object o = this.get(size() - 1);
this.remove(size() - 1);
return o;
}
public void push(Object o) {//将这个实例对象放入一个新的栈中
this.add(o);
}
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.println("请输入5个字符串: ");
String[] o = new String[5];
TestMyStack mystack = new TestMyStack();
for(int i = 0; i < 5; i++) {
o[i] = input.next();
mystack.push(o[i]);3
}
System.out.println("逆序输出为 : ");
while(mystack.peek() != null){
System.out.print(mystack.pop() + " ");
}
}
}
运行结果:
入站是从头进到尾,与出站相反了。