Stack
Stack(栈)是一种比较典型的数据结构,其元素满足后进先出(LIFO)的特点。
事实上,除了继承自Vector的那些方法之外,Stack只提供了5个方法:
1.测试栈是否为空: boolean isEmpty();
2.查看栈顶部对象,但不从栈中移除:E peek();
3.移除栈顶部的对象,并作为此函数的值返回该对象:E pop();
4.把项压入栈顶部:E push(E item);
5.返回对象在栈中的位置,以1为基数:int search(Object o);
返回对象在堆栈中的位置,以 1 为基数。如果对象 o 是堆栈中的一个项,此方法返回距堆栈顶部最近的出现位置到堆栈顶部的距离;堆栈中最顶部项的距离为 1。使用 equals 方法比较 o 与堆栈中的项。
参数:o - 目标对象。
返回:对象到堆栈顶部的位置,以 1 为基数;返回值 -1 表示此对象不在堆栈中。
Stack是线程安全的,所以其性能必然受到影响,如果需要使用一个非线程安全的Stack,可以直接使用LinkedList,LinkedList本身提供的方法就包含了Stack的操作。
Stack(栈)是一种比较典型的数据结构,其元素满足后进先出(LIFO)的特点。
Java中Stack的实现继承自Vector,所以其天然的具有了一些Vector的特点,所以栈也是线程安全的。
class Stack<E> extends Vector<E> {}事实上,除了继承自Vector的那些方法之外,Stack只提供了5个方法:
1.测试栈是否为空: boolean isEmpty();
2.查看栈顶部对象,但不从栈中移除:E peek();
3.移除栈顶部的对象,并作为此函数的值返回该对象:E pop();
4.把项压入栈顶部:E push(E item);
5.返回对象在栈中的位置,以1为基数:int search(Object o);
返回对象在堆栈中的位置,以 1 为基数。如果对象 o 是堆栈中的一个项,此方法返回距堆栈顶部最近的出现位置到堆栈顶部的距离;堆栈中最顶部项的距离为 1。使用 equals 方法比较 o 与堆栈中的项。
参数:o - 目标对象。
返回:对象到堆栈顶部的位置,以 1 为基数;返回值 -1 表示此对象不在堆栈中。
Stack是线程安全的,所以其性能必然受到影响,如果需要使用一个非线程安全的Stack,可以直接使用LinkedList,LinkedList本身提供的方法就包含了Stack的操作。