Я пытаюсь реализовать массив, используя 2 стека с именем stack и buffer. Первоначально стек заполняется случайными значениями, интерфейс MyArrayI содержит 2 функции: getItemAt (индекс int) и setItemAt (int index, int item). и они успешно реализованы в классе MyStackArray. всякий раз, когда я запускаю программу, я получаю ошибку исключения Null, я попытался проследить причину, пока не обнаружил, что стек не заполнен исходными данными - может быть. всякий раз, когда я пытаюсь получить доступ к стеку или буфере, я получаю ошибку NullPointerException. и когда я пытаюсь напечатать элементы внутри массива, я все равно получаю глупую ошибку NPE !!!weird Null Pointer Exception
public class MyStackArray implements MyArrayI {
private int[] buffer;
private int[] stack;
private int maxSize;
public MyStackArray(int s){
maxSize = s;
int[] buffer = new int [maxSize];
int[] stack = new int [maxSize];
for(int i=0; i<maxSize; i++)
stack[i]=i; // initiallizing the array with random values.
}
public void print(){ // tried to check the contents of the stack array.
for(int i=0; i<maxSize; i++)
System.out.println(stack[i]); // causes Null Pointer Exception. ??!
//System.out.println(stack[0]); // still causes the NPE !!
}
public void setItemAt(int index, int item){
int i;
int j;
for(i=0, j=maxSize-1 ; i<maxSize && j>=0 ; i++, j--){
if(j == index)
break;
buffer[i] = stack[j]; //causes a NULL.PointerException
}
stack[j] = item;
}
public int getItemAt(int index){
int i;
int j;
for(i=0, j=maxSize-1 ; i<maxSize && j>=0; i++, j--){
if(j==index)
break;
buffer[i] = stack[j]; // causes NPE
}
return stack[j];
}
public static void main(String[] args) {
MyStackArray X = new MyStackArray(3);
//X.setItemAt(0,4); // causes NPE
//X.getItemAt(1); // causes NPE
X.print(); // causes NPE
}
}