package basic.dataStructure.stack;
import basic.dataStructure.array.ArrayList;
/**
* Created by macvi on 2017/4/4.
*/
public class Stack {
private ArrayList elementData = new ArrayList();
public Stack(){}
public Stack(Object...objs){
for(int i = 0; i < objs.length; i++){
this.push(objs[i]);
}
}
public void push(Object o){
this.elementData.add(o);
}
public Object pop(){
int index = elementData.size() - 1;
Object obj = elementData.remove(index);
return obj;
}
public Object peek(){
int index = elementData.size() - 1;
return index == -1 ? null : elementData.get(index);
}
public boolean isEmpty(){
return peek() == null;
}
public int size(){
return elementData.size();
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
for(int i = this.size() - 1; i >= 0; i--){
if(i != 0){
sb.append(elementData.get(i).toString()).append(",");
}else{
sb.append(elementData.get(i).toString());
}
}
return sb.toString();
}
}