Java集合框架(5): Stack源码分析 发表于 2016-12-28 | 分类于 Java集合框架 1public class Stack<E> extends Vector<E> 简介 Stack是继承Vector,实现了栈相关的操作。 Stack也是线程安全的。 源码分析构造方法12public Stack() {} 方法push入栈1234567/** * 入栈,加入到容器末尾 */public E push(E item) { addElement(item); return item;} pop出栈123456789101112/** * 出栈,删除栈顶元素并返回其值 */public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(len - 1); return obj;} peek获取栈顶元素12345678910/** * 获取栈顶元素 */public synchronized E peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementAt(len - 1);} empty123public boolean empty() { return size() == 0;} search123456789101112/** * 搜索元素的位置 * 返回元素在数组最后一次出现位置的索引 */public synchronized int search(Object o) { int i = lastIndexOf(o); if (i >= 0) { return size() - i; } return -1;}