配列からスタックを塗りつぶし、要素を順番に印刷してから、順序を逆にする必要があります。私が問題を抱えているのは、ArrayIndexOutOfBoundsExceptionが発生し、どこから来ているのかわからないということです。私はデバッグを実行しようとしていると、それは最後の要素に到達しない要素を飛び出しているように見えます。以下は私のコードです:配列から読み込んだjavaスタックがArrayIndexOutOfBoundsExceptionをスローする
public class arrayStack {
private int top;
private String[] storage;
public arrayStack(int capacity)
{
storage = new String[capacity];
top = -1;
}
public boolean isEmpty() {
return (top == 0);
}
String peek() {
return storage[top];
}
String pop() {
top--;
return storage[top];
}
public void push(String str) {
top++;
storage[top] = str;
}
}
StackMain.java:pop()
で
public class StackMain {
public static void main(String[] args) {
//int j = 5;
String[] list = new String[5];
list[0] = "Beware";
list[1] = "The";
list[2] = "Ides";
list[3] = "Of";
list[4] = "March";
arrayStack stack = new arrayStack(5);
for(int i = 0; i < list.length; i++)
{
stack.push(list[i]);
}
for(int j = 0; j < list.length; j++)
System.out.println(stack.pop());
}
}
に言及した、より柔軟なスタックの実装では、私はすべての午後のために戦ってきた単純な答えだったこと、ありがとうございました。 – user519670