package data_structure; import java.util.Arrays; public class ArrayStack<E> { private Object []arrayStack; private int size; public ArrayStack(){ arrayStack=new Object[10]; } public E push(E item){ ensureCapacity(size+1); arrayStack[size++]=item; return item; } public E pop(){ E item=peek(); arrayStack[size-1]=null; size--; return item; } public E peek(){ if(!isEmpty()) return (E)arrayStack[size-1]; else return null; } public boolean isEmpty(){ return size==0?true:false; } public void ensureCapacity(int size){ int len=arrayStack.length; if(size>len){ arrayStack= Arrays.copyOf(arrayStack,len+10); } } public static void main(String []args){ ArrayStack<Integer> stack=new ArrayStack(); stack.push(1); stack.push(2); System.out.println(stack.size); System.out.println(stack.pop()); System.out.println(stack.pop()); } }