public class Stack {
private final Object[] buf;
private int position;
public Stack(int size) {
buf = new Object[size];
}
public void push(Object o) {
if(position > buf.length - 1)
throw new OutOfMemoryError();
buf[position++] = o;
}
public Object pop() {
if(position <= 0)
return null;
return buf[--position];
}
public boolean isEmpty() {
return (position == 0);
}
public boolean equals(Stack stack) {
return (buf == stack.buf);
}
}
buf == stack.buf
вернет true только когда это один и тот же массив, а не 2 массива с равными элементами. Используйте Arrays.equals(array1, array2). https://stackoverflow.com/a/8777279/1762922if(position <= 0)
, вроде достаточно проверки на равенство.