배열에서 스택을 채운 다음 요소를 순서대로 인쇄 한 다음 다시 순서를 뒤집어야합니다. 내가 겪고있는 문제는 ArrayIndexOutOfBoundsException을 얻었고 어디서 오는지 파악할 수 없다는 것입니다. 내가 디버그를 통해 실행하려고했는데 그것이 마지막 요소에 도달하지 못하는 요소들을 튕겨 내고있는 것처럼 보입니다.배열에서 자바 스택 읽기가 발생했습니다. 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 : 다음은 내 코드입니다
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());
}
}
2가 난 오후 내내 위해 싸우고있다 간단한 대답이었다, 대단히 감사합니다 효과적인 자바 에디션에 언급 된보다 유연한 스택 구현입니다. – user519670