定义一个新的栈类(MyStack)来扩展 ArrayList,方法如下: isEmpty():布尔值,如果堆栈为空则返回true。 getSize(): int,返回该堆栈中元素的数量。 peek(): Object,返回堆栈顶部的元素,但不移除它; pop():对象,返回并移除堆栈顶部的元素。 push(o: Object): void,在堆栈顶部添加一个新元素。 编写一个java测试程序,提示用户输入五个字符串并显示出来 相反的顺序。下面是运行的示例:
时间: 2024-03-10 18:48:32 浏览: 274
U10316013_HW5_15_10:重写 MyStack 类以执行列表字段的深拷贝
好的,以下是实现了您所描述的 MyStack 类的代码:
```java
import java.util.ArrayList;
public class MyStack {
private ArrayList<Object> list = new ArrayList<>();
public boolean isEmpty() {
return list.isEmpty();
}
public int getSize() {
return list.size();
}
public Object peek() {
return list.get(getSize() - 1);
}
public Object pop() {
Object o = list.get(getSize() - 1);
list.remove(getSize() - 1);
return o;
}
public void push(Object o) {
list.add(o);
}
}
```
接下来是测试程序的代码:
```java
import java.util.Scanner;
public class TestMyStack {
public static void main(String[] args) {
MyStack stack = new MyStack();
Scanner input = new Scanner(System.in);
System.out.println("请依次输入五个字符串:");
for (int i = 0; i < 5; i++) {
String s = input.next();
stack.push(s);
}
System.out.println("输入的字符串的相反顺序为:");
while (!stack.isEmpty()) {
System.out.print(stack.pop() + " ");
}
}
}
```
运行示例:
```
请依次输入五个字符串:
apple banana cherry date egg
输入的字符串的相反顺序为:
egg date cherry banana apple
```
注意,这个示例程序只是一个演示,实际上在生产环境中,您可能需要更多的输入验证和异常处理。
阅读全文