源码阅读之Java栈的实现
0x00 栈 栈是 Last-In-First-Out (后进先出)的线性表。对栈的操作主要有两个:入栈(push)和出栈(pop)。因此它也是一种操作受限的线性表。尽管如此,它在计算机中应用非常广泛,是一种非常基础的数据结构。 0x01 源码 从源码中可以看出栈也是一种非常简单的数据结构。栈的源码非常简洁,只有100多行代码。 public class Stack<E> extends Vector<E> { public Stack() { } //入栈操作 public E push(E item) { addElement(item); return item; } //出栈操作 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...