我创建了一个运行堆栈的类。但是,当我运行主类时,它会出现运行时错误。该类像堆栈一样运行,但是当输入的数字超过堆栈大小时,它应该调用一个复制数组的方法,向堆栈添加更多大小。
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 5 at IntegerStack.push(IntegerStack.java:26) at Lab15.main(Lab15.java:18)
我认为问题出在这门课上,我不知道我的问题到底出在哪里。我可能是错的,但它可能与我的数组副本有关。
import java.util.Arrays;
public class IntegerStack
{
private int stack [];
private int top;
public IntegerStack(int SIZE)
{
stack = new int [SIZE];
top = -1;
}
public void push(int i)
{
if (top == stack.length)
extendStack();
else
stack[++top]= i;
}
public int pop()
{
return stack[top--];
}
public int peek()
{
return stack[top];
}
public boolean isEmpty()
{
if ( top == -1)
return true;
else
return false;
}
private void extendStack()
{
stack = Arrays.copyOf(stack, 2 * stack.length);
}
}