我正在學習堆棧。我試圖寫我的代碼爲pop()當我遇到了Java不允許「從null轉換爲int」時...如何從使用數組構建的堆棧中移除元素?
如何從數組中刪除元素?即使我將空字符型轉換爲整數,它也會拋出一個空指針異常。
我在網上看到的大多數其他教程只是改變堆棧的頂部,而對索引處的值沒有做任何事情。
檢查以下
static class Stack{
int[] holder;
int capacity;
int top;
//Constructor
Stack(int a){
holder = new int[a];
capacity = a-1;
top = -1;
}
//Method to Print Stack
void PrintStack(){
System.out.println(Arrays.toString(this.holder));
}
//Method to PUSH
void push(int a){
//Check for StackOverflow
if(top == capacity){
System.out.println("Stack Overflow!!!");
}
else{
top++;
this.holder[top] = a;
}
}
//Method to POP
int pop(){
//Check for StackUnderflow
if(top == -1){
System.out.println("Stack Underflow");
}
else{
return this.holder[top];
this.holder[top] = null;
top--;
}
}
}
不要將該值設置爲空即可。只要你的上面是正確的,你應該沒有問題。您不能將基本類型int設置爲null。 – brso05 2014-10-09 18:52:35