//一个堆栈结构的集合(先进后出)继承于Vector
//基本已被ArrayDeque取代
//先看构造函数
public Stack() {
}
//新增一个元素
public E push(E item) {
addElement(item);
return item;
}
public synchronized void addElement(E obj) {
modCount++;
ensureCapacityHelper(elementCount + 1);
elementData[elementCount++] = obj;
}
//取出并移除一个元素
public synchronized E pop() {
E obj;
int len = size();
obj = peek();
removeElementAt(len - 1);
return obj;
}
//取出一个元素
public synchronized E peek() {
int len = size();
if (len == 0)
throw new EmptyStackException();
return elementAt(len - 1);
}
//队列是否为空
public boolean empty() {
return size() == 0;
}
//返回对象在队列中的位置从1开始
public synchronized int search(Object o) {
int i = lastIndexOf(o);
if (i >= 0) {
return size() - i;
}
return -1;
}