public static void main(String[] args){ ArrStack stack = new ArrStack(); int elementCount = 12; for(int i = 0 ; i < elementCount; i ++){ stack.put(i); } System.out.println("stack size is :"+stack.size()); for(int i = stack.size() ; i > 0 ; i --){ System.out.println(stack.pop()); } System.out.println(stack.pop()); } }
import java.util.Arrays;public class ArrStack{ private int size;
private Object[] elementData;
public ArrStack(){
this(10);
}
public ArrStack(int length){
elementData = new Object[length];
}
public int size(){
return this.size;
}
public boolean isEmpty(){
return this.size == 0;
}
public boolean isFull(){
return this.size == elementData.length;
}
public void put(Object obj){
if(isFull()){
int newSize = this.size*2;
System.out.println("stack capcity is "+newSize);
elementData = Arrays.copyOf(elementData,newSize);
}
elementData[size] = obj;
this.size ++ ;
}
public Object pop(){
if(isEmpty()){
//添加自己的处理
return "stack is empty !";
}
Object obj = elementData[--size] ;
elementData[size] = null;
return obj;
}
public static void main(String[] args){
ArrStack stack = new ArrStack();
int elementCount = 12;
for(int i = 0 ; i < elementCount; i ++){
stack.put(i);
}
System.out.println("stack size is :"+stack.size());
for(int i = stack.size() ; i > 0 ; i --){
System.out.println(stack.pop());
}
System.out.println(stack.pop());
}
}
你去看看ArrayList的实现代码就是了