我创建了一个运行堆栈的类。但是,当我运行主类时,会产生运行时错误。这个类像堆栈一样运行,但是当输入的数字超过堆栈大小时,它应该调用一个复制数组的方法,为堆栈增加更多大小。运行时错误运行堆栈,这可能是由于数组大小
异常线程 “main” java.lang.ArrayIndexOutOfBoundsException:在Lab15.main(Lab15.java:18)5 在IntegerStack.push(IntegerStack.java:26)
我认为问题出在这个班级内,我不确切地知道我的问题在哪里。我可能是错的,但它可能与我的数组副本。
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);
}
}
此没有解释在所有的空间,显然这是作业任务。 – ThePerson 2013-04-26 17:39:17