java-对象数组手写栈

public class MyArrayStack {
    private Object[] objects=new Object[10];
    private int size=0;
    public Object push(Object data){
        if(size>=objects.length){
            resize();
        }
        return objects[size++]=data;
    }
    public Object pop(){//返回栈顶的值,删除栈顶的值;
        Object o=objects[size-1];//下标从0开始;
        objects[--size]=null;
        return o;
    }
    public Object peek(){//返回栈顶的值,不删除栈顶的值;
        Object o=objects[size-1];//下标从0开始;
        return o;
    }
    private void resize() {
        Object []temp=new Object[objects.length*3];
        for(int i=0;i<objects.length;i++){
            temp[i]=objects[i];
            objects[i]=null;
        }
        objects=temp;
    }
    public static void main(String[] args) {
        MyArrayStack myArrayStack=new MyArrayStack();
        myArrayStack.push("A");
        myArrayStack.push("B");
        myArrayStack.push("C");
        System.out.println(myArrayStack.peek());
        System.out.println(myArrayStack.pop());
        System.out.println(myArrayStack.peek());
    }
}

猜你喜欢

转载自blog.csdn.net/Answer0902/article/details/81217304