ジャワ国新遊記の十八----汎型桟類
5986 ワード
import java.lang.reflect.Array;
/**
*
*
* @param <T>
*/
public class Stack<T>{
private Class<T> type;//
private int size;//
private T[] arr;//
private int top;//
public Stack(Class<T> type,int size){
this.type = type;
this.size=size;
arr=createArray(size);
top=-1;
}
/**
*
* @param size
* @return
*/
@SuppressWarnings("unchecked")
private T[] createArray(int size) {
return (T[]) Array.newInstance(type, size);
}
/**
*
* @param t
*/
public void push(T t){
top++;
arr[top]=t;
}
/**
*
* @return
*/
public T pop(){
T t=arr[top];
top--;
return t;
}
/**
*
* @return
*/
public T peek(){
return arr[top];
}
/**
*
* @return
*/
public boolean isEmpty(){
return top==-1;
}
/**
*
* @return
*/
public boolean isFull(){
return top==(size-1);
}
public static void main(String[] args){
Stack<String> s=new Stack<String>(String.class,100);
s.push(" ");
s.push(" ");
s.push(" ");
s.push(" ");
while(!s.isEmpty()){
String str=s.pop();
System.out.println(str);
}
}
}
出力: