package com.rd.p2p.common.util.liuxin;
public class Stack<T> {
private ArrayList<T> elementData = new ArrayList<T>();
public void push(T o){
elementData.add(o);
}
public T pop(){
if(elementData.size() > 0){
@SuppressWarnings("unchecked")
T obj = (T)elementData.get(elementData.size()-1);
elementData.remove(elementData.size()-1);
return obj;
}else{
return null;
}
}
@SuppressWarnings("unchecked")
public T peek(){
if(elementData.size() > 0){
return (T)elementData.get(elementData.size()-1);
}else{
return null;
}
}
public boolean isEmpty(){
return elementData.size() == 0 ? true : false;
}
public int size(){
return elementData.size();
}
public static void main(String[] args) {
Stack<Integer> stack = new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.pop());
System.out.println(stack.peek());
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.peek());
}
}