一直对堆栈的理解是先进先出和先进后出,今天试着模拟了一下栈的处理代码如下:
public class ObjectImitateSteak {
public int position=-1;
public Object[] arr;
public ObjectImitateSteak() {
arr=new Object[10];
}
public ObjectImitateSteak(int size) {
arr=new Object[size];
}
/*
* 添加
* */
public void push(int value) {
if(position<arr.length-1) {
arr[++position]=value;
}
else
System.out.println("已经到达最大数量");
}
/*
* 弹出,注意用中间对象返回和中间变量设置null
*/
public Object pop() {
if(position>-1) {
int index=position;
Object o = arr[position--];
arr[index]=null;
return o;
}
else {
System.out.println("已经没有数据了");
return null;
}
}
public boolean isFull() {
return position==arr.length-1;
}
public boolean isEmpty() {
return position==-1;
}
}