Java 泛型实现栈出栈操作 (pop) 示例代码
好的,下面是使用泛型实现'pop()'方法的示例代码:
import java.util.EmptyStackException;
public class ArrayStack<T> {
private static final int DEFAULT_CAPACITY = 10;
private int top; // 栈顶指针
private Object[] stackArray; // 存储元素的数组
public ArrayStack() {
stackArray = new Object[DEFAULT_CAPACITY];
top = -1;
}
public boolean isEmpty() {
return top == -1;
}
public void push(T element) {
if (top == stackArray.length - 1) {
expandCapacity();
}
stackArray[++top] = element;
}
public T pop() {
if (isEmpty()) {
throw new EmptyStackException();
}
return (T) stackArray[top--];
}
private void expandCapacity() {
Object[] newStackArray = new Object[stackArray.length * 2];
System.arraycopy(stackArray, 0, newStackArray, 0, stackArray.length);
stackArray = newStackArray;
}
}
在上述代码中,我们将'ArrayStack'类改为泛型类,并使用<T>来表示泛型类型。同时,将'stackArray'数组的类型改为'Object[]',在需要返回出栈元素时,使用类型转换'(T)'将其转换为'T'类型。
以下是一个使用示例:
public class Main {
public static void main(String[] args) {
ArrayStack<Integer> stack = new ArrayStack<>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.pop()); // 输出 3
System.out.println(stack.pop()); // 输出 2
System.out.println(stack.pop()); // 输出 1
}
}
在上述示例中,我们创建了一个泛型类型为'Integer'的'ArrayStack'对象,并依次将元素1、2、3入栈。然后通过连续调用'pop()'方法进行出栈操作,并打印出栈的元素。
希望这个示例能够帮助你理解如何使用泛型实现'pop()'方法。如果你有任何疑问,请随时提问。
原文地址: https://www.cveoy.top/t/topic/b5cX 著作权归作者所有。请勿转载和采集!